
void sqlite3Update(Parse *pParse,SrcList *pTabList,ExprList *pChanges,Expr *pWhere,int onError,
                  ExprList *pOrderBy,Expr *pLimit,Upsert *pUpsert)

{
  Index **ppIVar1;
  byte bVar2;
  u8 uVar3;
  short sVar4;
  ushort uVar5;
  bool bVar6;
  u64 uVar7;
  undefined *puVar8;
  undefined *puVar9;
  undefined *puVar10;
  int iVar11;
  int *piVar12;
  int *piVar13;
  int *piVar14;
  int iVar15;
  code *pcVar16;
  uint uVar17;
  int iVar18;
  sqlite3 *psVar19;
  code *pcVar20;
  Expr *pEVar21;
  Vdbe *pVVar22;
  u32 uVar23;
  code *pcVar24;
  int iVar25;
  Parse *pPVar26;
  undefined4 uVar27;
  undefined *puVar28;
  undefined4 uVar29;
  uint uVar30;
  Index *pIVar31;
  undefined1 *puVar32;
  undefined1 *puVar33;
  byte *pbVar34;
  sqlite3 *psVar35;
  int iVar36;
  Column *pCVar37;
  char *pcVar38;
  byte *pbVar39;
  short *psVar40;
  Column *pCVar41;
  Column *pCVar42;
  sqlite3 *psVar43;
  int *piVar44;
  uint uVar45;
  WhereInfo *pWVar46;
  WhereInfo *unaff_s3;
  WhereInfo *pWVar47;
  Table *unaff_s4;
  Table *pTVar48;
  Vdbe **ppVVar49;
  Parse *unaff_s5;
  int iVar50;
  Select *pSVar51;
  Table *in_stack_fffffed4;
  sqlite3 *in_stack_fffffed8;
  AggInfo *local_100;
  WhereInfo *local_f8;
  code *local_f4;
  WhereInfo *local_f0;
  Index *local_ec;
  Select *local_e8;
  Schema *local_e4;
  sqlite3 *local_e0;
  sqlite3 *local_dc;
  WhereInfo *local_d8;
  sqlite3 *local_d4;
  int local_d0;
  sqlite3 *local_cc;
  sqlite3 *local_c8;
  sqlite3 *local_c4;
  code *local_b4;
  sqlite3 *local_b0;
  WhereInfo *local_ac;
  int local_a8;
  int local_a4;
  undefined4 local_a0;
  sqlite3 *local_9c;
  sqlite3 *local_98;
  int local_94;
  Vdbe **local_90;
  undefined1 *local_8c;
  uint local_88;
  int local_84;
  int local_80;
  WhereInfo *local_7c;
  int *local_78;
  int tmask;
  int bReplace;
  AuthContext sContext;
  NameContext sNC;
  int aiCurOnePass [2];
  
  puVar10 = PTR___stack_chk_guard_000f5568;
  local_100 = (AggInfo *)pOrderBy;
  pWVar46 = (WhereInfo *)pParse->nErr;
  bReplace = 0;
  sContext.zAuthContext = (char *)0x0;
  sContext.pParse = (Parse *)0x0;
  iVar11 = *(int *)PTR___stack_chk_guard_000f5568;
  psVar43 = pParse->db;
  if ((pWVar46 == (WhereInfo *)0x0) &&
     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)) {
    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);
    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;
    if (unaff_s4->pSchema == (Schema *)0x0) {
      local_e0 = (sqlite3 *)0xffff8000;
    }
    else {
      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);
    }
    local_e4 = (Schema *)
               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);
    local_e8 = unaff_s4->pSelect;
    if (1 < pTabList->nSrc) {
      pWVar46 = (WhereInfo *)pChanges->nExpr;
    }
    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);
    if (iVar15 != 0) goto LAB_000b7424;
    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);
    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;
    local_d4 = (sqlite3 *)pParse->nTab;
    uVar17 = unaff_s4->tabFlags;
    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);
    pIVar31 = unaff_s4->pIndex;
    pParse->nTab = (int)local_c4;
    local_f0 = (WhereInfo *)local_d4;
    if ((uVar17 & 0x80) == 0) {
      local_ec = (Index *)0x0;
      if (pIVar31 == (Index *)0x0) {
        local_8c = (undefined1 *)0x0;
        goto LAB_000b7504;
      }
    }
    else {
      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;
      bVar2 = pIVar31->field_0x37;
      local_ec = pIVar31;
      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {
        bVar2 = local_ec->field_0x37;
      }
    }
    psVar35 = local_c4;
    do {
      ppIVar1 = &pIVar31->pNext;
      if (pIVar31 == local_ec) {
        local_f0 = (WhereInfo *)psVar35;
      }
      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);
      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);
      pIVar31 = *ppIVar1;
    } while (*ppIVar1 != (Index *)0x0);
    pParse->nTab = (int)psVar35;
    goto LAB_000b7504;
  }
  do {
    while( true ) {
      pParse = unaff_s5;
      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);
      if (pChanges != (ExprList *)0x0) {
        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);
      }
      if (pWhere != (Expr *)0x0) {
        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);
      }
      if (iVar11 == *(int *)puVar10) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_000f5540)();
LAB_000b82e4:
      local_ec = (Index *)0x0;
      local_8c = (undefined1 *)0x0;
      local_f0 = (WhereInfo *)local_d4;
LAB_000b7504:
      if (local_100 != (AggInfo *)0x0) {
        local_f0 = (WhereInfo *)local_100->aCol;
        local_c4 = (sqlite3 *)local_100->nColumn;
        pParse->nTab = (int)local_d4;
      }
      puVar28 = PTR_LAB_000f52ec;
      pTabList->a[0].iCursor = (int)local_f0;
      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);
      if (piVar12 != (int *)0x0) break;
LAB_000b7424:
      pPVar26 = sContext.pParse;
      unaff_s5 = pParse;
      if (sContext.pParse != (Parse *)0x0) {
        sContext.pParse = (Parse *)0x0;
        pPVar26->zAuthContext = sContext.zAuthContext;
      }
    }
    puVar33 = local_8c + 1;
    piVar44 = piVar12 + unaff_s4->nCol;
    piVar13 = piVar44 + (int)puVar33;
    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);
    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;
    sVar4 = unaff_s4->nCol;
    if (0 < sVar4) {
      piVar14 = piVar12;
      do {
        *piVar14 = -1;
        piVar14 = piVar14 + 1;
      } while (piVar12 + sVar4 != piVar14);
    }
    local_f8 = (WhereInfo *)pParse->pVdbe;
    sNC.pNext = (NameContext *)0x0;
    sNC.uNC.pAggInfo = local_100;
    sNC.nRef = 0;
    sNC.nErr = 0;
    sNC.pWinSelect = (Select *)0x0;
    sNC.ncFlags = 0x200;
    sNC.pParse = pParse;
    sNC.pSrcList = pTabList;
    if (local_f8 == (WhereInfo *)0x0) {
      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);
      pTVar48 = unaff_s4;
      if (local_f8 != (WhereInfo *)0x0) {
        iVar15 = pChanges->nExpr;
        goto LAB_000b7624;
      }
    }
    else {
      iVar15 = pChanges->nExpr;
LAB_000b7624:
      puVar9 = PTR_LAB_000f530c;
      puVar8 = PTR_yy_shift_ofst_376__000f52d4;
      puVar28 = PTR_LAB_000f52cc;
      local_d8 = unaff_s3;
      if (iVar15 < 1) {
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (WhereInfo *)0xffffffff;
      }
      else {
        pTVar48 = (Table *)pChanges->a;
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (WhereInfo *)0xffffffff;
        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);
        pWVar47 = (WhereInfo *)0x0;
        do {
          unaff_s3 = pWVar47;
          if ((pWVar46 == (WhereInfo *)0x0) &&
             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))
          goto LAB_000b7aa8;
          iVar15 = (int)unaff_s4->nCol;
          pCVar41 = pTVar48->aCol;
          if (0 < iVar15) {
            pCVar42 = unaff_s4->aCol;
            iVar50 = 0;
            do {
              pbVar39 = (byte *)pCVar42->zName;
              uVar30 = (uint)*(byte *)&pCVar41->zName;
              uVar17 = (uint)*pbVar39;
              pbVar34 = pbVar39;
              pCVar37 = pCVar41;
              if (uVar17 == uVar30) goto LAB_000b76e8;
              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {
                while( true ) {
                  pbVar34 = pbVar34 + 1;
                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);
                  uVar17 = (uint)*pbVar34;
                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);
                  if (uVar17 != uVar30) break;
LAB_000b76e8:
                  if (uVar17 == 0) {
                    if (unaff_s4->iPKey == iVar50) {
                      local_b4 = (code *)pTVar48->zName;
                      local_d8 = (WhereInfo *)0x1;
                      local_ac = unaff_s3;
                    }
                    else {
                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {
                        piVar12[iVar50] = (int)unaff_s3;
                        if (iVar15 <= iVar50) goto LAB_000b7e5c;
                        pcVar38 = unaff_s4->zName;
                        local_84 = 1;
                        goto LAB_000b7790;
                      }
                      if ((pCVar42->colFlags & 0x60) != 0) {
                        (*(code *)(PTR_LAB_000f530c + -0x61d8))
                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);
                        goto LAB_000b7aa8;
                      }
                    }
                    piVar12[iVar50] = (int)unaff_s3;
                    if (iVar15 <= iVar50) goto LAB_000b7748;
                    pcVar38 = unaff_s4->zName;
                    goto LAB_000b7790;
                  }
                }
              }
              iVar50 = iVar50 + 1;
              pCVar42 = pCVar42 + 1;
            } while (iVar50 != iVar15);
          }
LAB_000b7748:
          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {
LAB_000b7e5c:
            (*(code *)(PTR_LAB_000f530c + -0x61d8))
                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);
            pParse->checkSchema = '\x01';
            goto LAB_000b7aa8;
          }
          local_b4 = (code *)pTVar48->zName;
          iVar50 = -1;
          pcVar38 = unaff_s4->zName;
          local_d8 = (WhereInfo *)0x1;
          pbVar39 = puVar28 + 0x7028;
          local_ac = unaff_s3;
LAB_000b7790:
          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))
                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);
          if (iVar15 == 1) goto LAB_000b7aa8;
          if (iVar15 == 2) {
            piVar12[iVar50] = -1;
          }
          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);
          pTVar48 = (Table *)&pTVar48->pFKey;
        } while ((int)pWVar47 < pChanges->nExpr);
      }
      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;
      if ((unaff_s4->tabFlags & 0x60) != 0) {
        iVar15 = (int)unaff_s4->nCol;
        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);
        do {
          if (iVar15 < 1) break;
          bVar6 = false;
          iVar50 = 0;
          piVar14 = piVar12;
          do {
            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {
              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);
              iVar15 = (int)unaff_s4->nCol;
              if (iVar18 != 0) {
                bVar6 = true;
                *piVar14 = 99999;
              }
            }
            iVar50 = iVar50 + 1;
            piVar14 = piVar14 + 1;
          } while (iVar50 < iVar15);
        } while (bVar6);
      }
      psVar35 = pParse->db;
      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);
      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);
      *(int *)&pTabList->a[0].colUsed = iVar15;
      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;
      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);
      if (onError == 5) {
        bReplace = 1;
      }
      pIVar31 = unaff_s4->pIndex;
      local_78 = piVar44;
      if (pIVar31 != (Index *)0x0) {
        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);
        iVar50 = 0;
        piVar14 = piVar44;
        do {
          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&
             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||
              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {
            iVar18 = 0;
            if (pIVar31->nKeyCol != 0) {
              do {
                if (pIVar31->aiColumn[iVar18] < 0) {
                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);
                }
                else {
                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;
                }
                iVar18 = iVar18 + 1;
                if (uVar30 != 0) {
                  iVar18 = pParse->nMem + 1;
                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;
                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {
                    bReplace = 1;
                  }
                  goto LAB_000b79b4;
                }
              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);
            }
LAB_000b79c4:
            iVar18 = 0;
            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;
          }
          else {
            iVar18 = pParse->nMem + 1;
            pParse->nMem = (uint)pIVar31->nColumn + iVar18;
LAB_000b79b4:
            if (iVar18 == 0) goto LAB_000b79c4;
          }
          pIVar31 = pIVar31->pNext;
          iVar50 = iVar50 + 1;
          *piVar14 = iVar18;
          piVar14 = piVar14 + 1;
        } while (pIVar31 != (Index *)0x0);
        local_78 = piVar44 + iVar50;
      }
      iVar50 = pParse->nMem + 1;
      pParse->nMem = iVar50;
      *local_78 = iVar50;
      if (bReplace != 0) {
        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);
      }
      if (pParse->nested == '\0') {
        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =
             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;
      }
      (*(code *)(PTR_LAB_000f5308 + -0x5698))
                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);
      iVar50 = unaff_s4->nModuleArg;
      if (iVar50 == 0) {
        local_94 = pParse->nMem;
        local_80 = *local_78;
        local_e0 = (sqlite3 *)(local_94 + 1);
        iVar18 = (int)unaff_s4->nCol;
        pParse->nMem = (int)local_e0;
        local_c8 = local_e0;
        if (local_84 == 0) {
          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {
            local_94 = 0;
            psVar35 = local_e0;
            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;
          }
          else {
            local_94 = local_94 + 2;
            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);
            pParse->nMem = (int)psVar35;
          }
LAB_000b7c3c:
          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);
          pParse->nMem = (int)local_c8;
          psVar35 = local_c8;
        }
        else {
          local_94 = local_94 + 2;
          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);
          pParse->nMem = (int)psVar35;
          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;
        }
LAB_000b7c48:
        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);
        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);
      }
      else {
        local_80 = 0;
        local_94 = 0;
        local_90 = (Vdbe **)0x0;
        local_c8 = (sqlite3 *)0x0;
        local_e0 = (sqlite3 *)0x0;
      }
      unaff_s3 = local_d8;
      if (local_e8 == (Select *)0x0) {
        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;
      }
      else {
        sContext.zAuthContext = pParse->zAuthContext;
        pParse->zAuthContext = unaff_s4->zName;
        sContext.pParse = pParse;
        if (pWVar46 == (WhereInfo *)0x0) {
          sqlite3MaterializeView
                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,
                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);
LAB_000b7cac:
          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);
          pTVar48 = unaff_s4;
          if (iVar50 != 0) goto LAB_000b7aa8;
          iVar50 = unaff_s4->nModuleArg;
        }
      }
      if (iVar50 == 0) {
        uVar7 = psVar43->flags;
        local_b0 = (sqlite3 *)(pParse->nLabel - 1);
        pParse->nLabel = (int)local_b0;
        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||
            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {
          local_a8 = 0;
        }
        else {
          local_a8 = pParse->nMem + 1;
          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
          pParse->nMem = local_a8;
          (*pcVar16)(local_f8,0x45,0,local_a8,0);
        }
        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {
          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
          (*local_f4)(local_f8,0x48,0,local_80,local_e0);
          local_98 = (sqlite3 *)0x0;
          local_dc = (sqlite3 *)0x0;
          if (local_100 != (AggInfo *)0x0) {
            local_d0 = 0;
LAB_000b7d5c:
            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);
            uVar30 = unaff_s4->tabFlags;
            local_cc = (sqlite3 *)0x0;
            local_9c = (sqlite3 *)0x0;
            local_88 = 0;
            uVar3 = '\x01';
            local_7c = (WhereInfo *)0x0;
LAB_000b7d98:
            if ((uVar30 & 0x80) == 0) {
              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);
              local_a4 = 0;
              local_9c = local_dc;
              local_dc = local_98;
            }
            else {
LAB_000b7da8:
              local_a4 = local_d0;
              if (0 < local_d0) {
LAB_000b7db0:
                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);
                iVar50 = 0;
                psVar35 = local_dc;
                do {
                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);
                  iVar50 = iVar50 + 2;
                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);
                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);
                  local_a4 = local_d0;
                } while (local_d0 << 1 != iVar50);
              }
              local_d0 = local_a4;
              if (uVar3 == '\0') {
                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
LAB_000b9410:
                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);
                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);
                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);
                (*(code *)(PTR_DAT_000f52e8 + -0x4660))
                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);
                local_9c = local_dc;
                local_a4 = 0;
                uVar3 = '\0';
                local_dc = local_98;
              }
              else if (local_9c == (sqlite3 *)0x0) {
                local_9c = local_dc;
              }
              else {
                (*(code *)(PTR_LAB_000f52ec + 0x29e8))
                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);
                local_9c = local_dc;
              }
            }
            goto LAB_000b8330;
          }
          local_9c = (sqlite3 *)0x0;
          local_cc = (sqlite3 *)0x0;
          local_d0 = 0;
LAB_000b9260:
          in_stack_fffffed4 = (Table *)0x1004;
          if (pParse->nested == '\0') {
            if (local_e4 == (Schema *)0x0) {
              in_stack_fffffed4 = (Table *)0x1004;
              if (iVar15 == 0) {
                if (uVar17 != 0) goto LAB_000b9278;
                in_stack_fffffed4 = (Table *)0x100c;
                if (bReplace != 0) {
                  in_stack_fffffed4 = (Table *)0x1004;
                }
              }
            }
            else {
LAB_000b9278:
              in_stack_fffffed4 = (Table *)0x1004;
            }
          }
          in_stack_fffffed8 = local_c4;
          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,
                                       (u16)in_stack_fffffed4,(int)local_c4);
          pTVar48 = unaff_s4;
          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;
          aiCurOnePass[0] = local_7c->aiCurOnePass[0];
          aiCurOnePass[1] = local_7c->aiCurOnePass[1];
          uVar3 = local_7c->eOnePass;
          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;
          if (uVar3 == '\x01') {
            uVar30 = unaff_s4->tabFlags;
            goto LAB_000b7d98;
          }
          pPVar26 = pParse->pToplevel;
          if (pParse->pToplevel == (Parse *)0x0) {
            pPVar26 = pParse;
          }
          pPVar26->isMultiWrite = '\x01';
          uVar30 = unaff_s4->tabFlags;
          if (uVar3 == '\x02') {
            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||
               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))
            goto LAB_000b7d98;
            if ((uVar30 & 0x80) == 0) {
              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
              goto LAB_000b937c;
            }
            if (0 < local_d0) {
              uVar3 = '\0';
              goto LAB_000b7db0;
            }
            goto LAB_000b9410;
          }
          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;
          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
          if (uVar3 == '\0') {
LAB_000b937c:
            iVar50 = pParse->nMem + 1;
            pParse->nMem = iVar50;
            *local_78 = iVar50;
            (*local_f4)(local_f8,0x93,local_80,local_e0,0);
            uVar3 = '\0';
          }
          local_9c = local_dc;
          local_a4 = 0;
          local_dc = local_98;
LAB_000b8ff0:
          if (uVar3 == '\x02') {
            if (local_e8 == (Select *)0x0) {
LAB_000b9784:
              if (-1 < aiCurOnePass[0]) {
                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;
              }
              if (-1 < aiCurOnePass[1]) {
                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;
              }
              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {
                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);
                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;
                goto LAB_000b90c8;
              }
              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;
LAB_000b97d4:
              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&
                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {
                (*(code *)(PTR_DAT_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);
              }
LAB_000b902c:
              local_d4 = local_b0;
              if (uVar3 != '\x01') goto LAB_000b9038;
            }
            else {
LAB_000b9038:
              local_d4 = (sqlite3 *)(pParse->nLabel - 1);
              pParse->nLabel = (int)local_d4;
            }
            psVar35 = local_dc;
            if (local_ec == (Index *)0x0) {
              psVar35 = local_e0;
            }
            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);
            psVar35 = local_d4;
            goto LAB_000b8340;
          }
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
LAB_000b9014:
          if (local_e8 == (Select *)0x0) {
            if (uVar3 != '\0') goto LAB_000b9784;
            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;
LAB_000b9084:
            iVar50 = 0;
LAB_000b908c:
            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);
LAB_000b90c8:
            if (iVar50 != 0) {
              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;
              iVar18 = iVar36 + -1;
              if (iVar18 == iVar50) {
                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);
                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);
                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;
              }
              else {
                if (-1 < iVar50) {
                  iVar18 = iVar50;
                }
                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {
                  puVar28 = (undefined *)
                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);
                }
                else {
                  puVar28 = PTR_DAT_000f52bc + 0x5860;
                }
                *(int *)(puVar28 + 8) = iVar36;
              }
            }
            if (uVar3 != '\0') goto LAB_000b97d4;
          }
          else if (uVar3 != '\0') goto LAB_000b902c;
LAB_000b911c:
          if (local_ec == (Index *)0x0) {
            if (pWVar46 != (WhereInfo *)0x0) {
              local_d4 = (sqlite3 *)(pParse->nLabel - 1);
              pParse->nLabel = (int)local_d4;
              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;
              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;
              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;
              if (local_e8 == (Select *)0x0) {
                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);
                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              goto LAB_000b916c;
            }
            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);
            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
            local_a0 = 0;
LAB_000b9a58:
            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;
LAB_000b8358:
            if (pParse->pVdbe != (Vdbe *)0x0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);
            }
            goto LAB_000b837c;
          }
          local_d4 = (sqlite3 *)(pParse->nLabel - 1);
          pParse->nLabel = (int)local_d4;
          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;
          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;
          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;
          if (pWVar46 == (WhereInfo *)0x0) {
            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);
            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);
            goto LAB_000b9a58;
          }
          iVar50 = 0;
          if (local_e8 == (Select *)0x0) {
            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {
              (*local_f4)(local_f8,0x59,local_cc,iVar50,
                          (undefined1 *)((int)&local_9c->pVfs + iVar50));
            }
            (*(code *)(PTR_DAT_000f52e8 + -0x4660))
                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);
          }
LAB_000b916c:
          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;
        }
        else {
          if (local_ec == (Index *)0x0) {
            local_d0 = 0;
          }
          else {
            local_d0 = (int)(short)local_ec->nKeyCol;
          }
          local_a4 = local_d0;
          local_dc = (sqlite3 *)(pParse->nMem + 1);
          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);
          pParse->nMem = (int)local_98;
          if (local_100 == (AggInfo *)0x0) {
            iVar50 = 0;
            if (local_e8 != (Select *)0x0) {
              iVar50 = (int)unaff_s4->nCol;
            }
            local_cc = (sqlite3 *)pParse->nTab;
            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;
            pParse->nTab = (int)((int)&local_cc->pVfs + 1);
            puVar28 = PTR_DAT_000f52e8;
            if (local_ec == (Index *)0x0) {
              local_9c = (sqlite3 *)
                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);
            }
            else {
              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
              (*pcVar16)(local_f8,0x48,0,local_dc,
                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));
              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);
              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);
              if (iVar18 != 0) {
                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);
                *(short *)(iVar18 + 8) = (short)iVar50;
                (*pcVar16)(local_f8,iVar18,0xfffffff7);
              }
            }
            local_f4 = (code *)(puVar28 + -0x47a8);
            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;
            if (local_e8 != (Select *)0x0) {
              local_f0 = (WhereInfo *)local_cc;
            }
            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))
                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);
          }
          else {
            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;
            local_cc = (sqlite3 *)0x0;
          }
          uVar3 = '\0';
          pPVar26 = pParse->pToplevel;
          if (pParse->pToplevel == (Parse *)0x0) {
            pPVar26 = pParse;
          }
          local_7c = (WhereInfo *)0x0;
          local_88 = 1;
          pPVar26->isMultiWrite = '\x01';
          local_9c = local_dc;
LAB_000b8330:
          psVar35 = local_b0;
          if (local_100 == (AggInfo *)0x0) {
            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;
            goto LAB_000b9014;
          }
LAB_000b8340:
          local_d4 = psVar35;
          local_a0 = 0;
          if (local_d8 != (WhereInfo *)0x0) {
            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;
LAB_000b9174:
            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);
LAB_000b837c:
            (*local_f4)(local_f8,0xf,local_c8,0,0);
          }
        }
LAB_000b839c:
        if (local_84 == 0) {
          if (iVar15 != 0) goto LAB_000b8840;
          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
        }
        else {
          uVar30 = 0;
          if (iVar15 != 0) {
LAB_000b8840:
            if ((pParse->db->flags & 0x4000) == 0) {
LAB_000b8838:
              uVar30 = 0;
            }
            else {
              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);
            }
          }
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);
          puVar28 = PTR_DAT_000f52e8;
          if (0 < unaff_s4->nCol) {
            local_f4 = (code *)0x0;
            uVar45 = 0;
            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);
            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);
            do {
              iVar50 = (int)(short)uVar45;
              if ((unaff_s4->tabFlags & 0x20) != 0) {
                iVar50 = (*pcVar16)(unaff_s4,iVar50);
              }
              if (((uVar23 | uVar30) == 0xffffffff) ||
                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||
                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {
                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);
              }
              else {
                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);
              }
              uVar45 = uVar45 + 1;
              local_f4 = (code *)((int)local_f4 + 0x14);
            } while ((int)uVar45 < (int)unaff_s4->nCol);
          }
          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {
            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);
          }
        }
        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);
        puVar28 = PTR_LAB_000f5308;
        iVar50 = (int)unaff_s4->nCol;
        if (0 < iVar50) {
          uVar45 = 0;
          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);
          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
          ppVVar49 = local_90;
          do {
            if (uVar45 == (int)unaff_s4->iPKey) {
LAB_000b8640:
              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);
              iVar50 = (int)unaff_s4->nCol;
            }
            else {
              uVar5 = unaff_s4->aCol[uVar45].colFlags;
              if ((uVar5 & 0x60) == 0) {
                iVar18 = piVar12[uVar45];
                if (iVar18 < 0) {
                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&
                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;
                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);
                  iVar50 = (int)unaff_s4->nCol;
                  local_88 = 0;
                }
                else if (pWVar46 == (WhereInfo *)0x0) {
                  if (pParse->pVdbe != (Vdbe *)0x0) {
                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);
                    iVar50 = (int)unaff_s4->nCol;
                  }
                }
                else {
                  iVar36 = local_d0;
                  if (local_e8 != (Select *)0x0) {
                    iVar36 = iVar50;
                  }
                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);
                  iVar50 = (int)unaff_s4->nCol;
                }
              }
              else if ((uVar5 & 0x20) != 0) {
                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);
              }
            }
            uVar45 = uVar45 + 1;
            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);
          } while ((int)uVar45 < iVar50);
        }
        if ((unaff_s4->tabFlags & 0x60) != 0) {
          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);
        }
        if ((tmask & 1U) == 0) {
          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);
          if (local_e8 == (Select *)0x0) {
LAB_000b8da4:
            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))
                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,
                       onError & 0xff,local_d4,&bReplace,piVar12,0);
            if ((bReplace != 0) || (uVar17 != 0)) {
              if (local_ec == (Index *)0x0) {
                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              else {
                (*(code *)(PTR_DAT_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
              }
            }
            if (iVar15 == 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);
              if (local_88 != 0) {
LAB_000b8f88:
                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);
                goto LAB_000b8fac;
              }
              if (uVar17 != 0) goto LAB_000b8ea8;
            }
            else {
              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);
              if (local_88 != 0) goto LAB_000b8f88;
LAB_000b8fac:
              if ((1 < iVar15) || (uVar17 != 0)) {
LAB_000b8ea8:
                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);
              }
              if (iVar15 != 0) {
                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);
                if (uVar3 == '\x02') {
                  uVar27 = 6;
                }
                else {
                  uVar27 = 4;
                }
                (*(code *)(PTR_000f5314 + 0x645c))
                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);
                if ((pParse->db->flags & 0x4000) != 0) {
                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))
                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);
                }
                goto LAB_000b8698;
              }
            }
            if (uVar3 == '\x02') {
              uVar27 = 6;
            }
            else {
              uVar27 = 4;
            }
            (*(code *)(PTR_000f5314 + 0x645c))
                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);
          }
        }
        else {
          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);
          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);
          sqlite3CodeRowTrigger
                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,
                     (int)local_d4);
          if (local_e8 == (Select *)0x0) {
            if (local_ec == (Index *)0x0) {
              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
            }
            else {
              (*(code *)(PTR_DAT_000f52e8 + -0x4660))
                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
            }
            iVar18 = (int)unaff_s4->nCol;
            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);
            ppVVar49 = local_90;
            iVar50 = 0;
            while (iVar50 < iVar18) {
              uVar5 = unaff_s4->aCol[iVar50].colFlags;
              if ((uVar5 & 0x60) == 0) {
                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;
                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);
                iVar18 = (int)unaff_s4->nCol;
                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);
                iVar50 = iVar50 + 1;
                local_e8 = pSVar51;
              }
              else {
                if ((uVar5 & 0x20) != 0) {
                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);
                }
LAB_000b95b4:
                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);
                iVar50 = iVar50 + 1;
              }
            }
            if ((unaff_s4->tabFlags & 0x60) != 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);
            }
            goto LAB_000b8da4;
          }
        }
LAB_000b8698:
        if (local_a8 != 0) {
          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);
        }
        in_stack_fffffed4 = unaff_s4;
        in_stack_fffffed8 = local_e0;
        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);
        if (uVar3 == '\x01') {
LAB_000b881c:
          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);
        }
        else if (uVar3 == '\x02') {
          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);
          (*(code *)pWVar46)(local_f8,local_d4);
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
        }
        else {
          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {
            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);
            goto LAB_000b881c;
          }
          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);
          (*(code *)pWVar46)(local_f8,local_d4);
          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);
          unaff_s3 = local_f8;
        }
        (*(code *)pWVar46)(local_f8,local_b0);
        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&
            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {
          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);
        }
        pTVar48 = unaff_s4;
        if (local_a8 != 0) {
          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);
          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);
          pWVar46 = local_f8;
          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {
            (*(code *)(PTR_LAB_000f5300 + -0x1e28))
                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);
          }
        }
      }
      else {
        local_e4 = (Schema *)unaff_s4->pVTable;
        pWVar46 = (WhereInfo *)pParse->pVdbe;
        psVar35 = pParse->db;
        if (local_e4 != (Schema *)0x0) {
          psVar19 = (sqlite3 *)local_e4->schema_cookie;
          while ((psVar19 != psVar35 &&
                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {
            psVar19 = (sqlite3 *)local_e4->schema_cookie;
          }
        }
        local_100 = (AggInfo *)pParse->nTab;
        iVar18 = unaff_s4->nCol + 2;
        iVar15 = pTabList->a[0].iCursor;
        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);
        pParse->nTab = (int)&local_100->useSortingIdx;
        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);
        local_e0 = (sqlite3 *)pParse->nMem;
        iVar50 = pTabList->nSrc;
        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);
        local_e8 = (Select *)((int)&local_e0->pVfs + 1);
        pParse->nMem = (int)puVar33;
        if (iVar50 < 2) {
          puVar32 = puVar33 + 2;
          in_stack_fffffed8 = (sqlite3 *)0x0;
          pParse->nMem = (int)puVar32;
          in_stack_fffffed4 = (Table *)0x4;
          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);
          pTVar48 = unaff_s4;
          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;
          iVar50 = (int)unaff_s4->nCol;
          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);
          iVar36 = 0;
          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);
          piVar44 = piVar12;
          while (iVar36 < iVar50) {
            if (*piVar44 < 0) {
              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);
              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;
              if (iVar25 < 1) {
                iVar50 = (int)unaff_s4->nCol;
                iVar36 = iVar36 + 1;
                piVar44 = piVar44 + 1;
              }
              else {
                iVar36 = iVar36 + 1;
                piVar44 = piVar44 + 1;
                iVar50 = (int)unaff_s4->nCol;
                *(undefined2 *)
                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;
              }
            }
            else {
              if (pParse->pVdbe != (Vdbe *)0x0) {
                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);
                iVar50 = (int)unaff_s4->nCol;
              }
              iVar36 = iVar36 + 1;
              piVar44 = piVar44 + 1;
            }
          }
          if ((unaff_s4->tabFlags & 0x80) == 0) {
            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);
            if (local_b4 == (code *)0x0) {
              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);
            }
            else if (pParse->pVdbe != (Vdbe *)0x0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);
            }
          }
          else {
            pIVar31 = unaff_s4->pIndex;
            while( true ) {
              if (pIVar31 == (Index *)0x0) {
                    /* WARNING: Does not return */
                pcVar16 = (code *)trap(0);
                (*pcVar16)();
              }
              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;
              pIVar31 = pIVar31->pNext;
            }
            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;
            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);
            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,
                       (undefined1 *)((int)&local_e0->pVfs + 2),0);
          }
          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];
          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];
          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;
          if (psVar35 == (sqlite3 *)0x0) {
            pPVar26 = pParse->pToplevel;
            if (pParse->pToplevel == (Parse *)0x0) {
              pPVar26 = pParse;
            }
            pPVar26->isMultiWrite = '\x01';
            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);
            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);
            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);
            goto LAB_000b80d0;
          }
          (*(code *)(PTR_LAB_000f52ec + 0x29e8))
                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);
          (*pcVar16)(pWVar46,0x74,iVar15,0,0);
          local_e0 = psVar35;
          local_b0 = psVar35;
        }
        else {
          if (local_b4 == (code *)0x0) {
            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);
          }
          else {
            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);
          }
          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);
          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);
          if (0 < unaff_s4->nCol) {
            local_f0 = (WhereInfo *)0x1;
            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);
            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);
            local_f8 = (WhereInfo *)piVar12;
            do {
              if (*(int *)local_f8 < 0) {
                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);
                if (pEVar21 != (Expr *)0x0) {
                  pEVar21->iColumn = (ynVar)local_f0;
                }
              }
              else {
                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;
                if (pEVar21 != (Expr *)0x0) {
                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);
                }
              }
              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);
              local_f8 = (WhereInfo *)((int)local_f8 + 4);
              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;
              local_f0 = (WhereInfo *)((int)local_f0 + 1);
              local_d4 = psVar43;
            } while (bVar6);
          }
          in_stack_fffffed4 = (Table *)pWhere;
          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);
          if (iVar15 == 0) {
            unaff_s3 = (WhereInfo *)0x0;
          }
          else {
            unaff_s3 = (WhereInfo *)0x0;
            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);
          }
LAB_000b80d0:
          if (pTabList->nSrc == 1) {
            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          }
          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);
          iVar15 = 0;
          if (0 < iVar18) {
            do {
              iVar50 = iVar15 + 1;
              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)
              ;
              iVar15 = iVar50;
            } while (iVar18 != iVar50);
          }
        }
        pWVar47 = local_f0;
        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);
        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);
        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);
        if (onError == 0xb) {
          onError = 2;
        }
        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;
        if (0 < iVar15) {
          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =
               (short)onError;
        }
        pPVar26 = pParse->pToplevel;
        if (pParse->pToplevel == (Parse *)0x0) {
          pPVar26 = pParse;
        }
        pPVar26->mayAbort = '\x01';
        if (local_b0 == (sqlite3 *)0x0) {
          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);
          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;
          if ((int)local_f0 < 0) {
            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;
          }
          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {
            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);
          }
          else {
            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);
          }
          pParse->pVdbe = pVVar22;
          (*pcVar16)(pWVar46,0x74,local_100,0,0);
          unaff_s3 = pWVar47;
          pTVar48 = unaff_s4;
        }
        else {
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          pTVar48 = unaff_s4;
        }
      }
    }
LAB_000b7aa8:
    pPVar26 = sContext.pParse;
    if (sContext.pParse != (Parse *)0x0) {
      sContext.pParse = (Parse *)0x0;
      pPVar26->zAuthContext = sContext.zAuthContext;
    }
    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);
    unaff_s4 = pTVar48;
    unaff_s5 = pParse;
  } while( true );
}



void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)

{
  byte bVar1;
  char cVar2;
  short sVar3;
  ushort uVar4;
  bool bVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  int *piVar9;
  uint *puVar10;
  int *piVar11;
  uint uVar12;
  code *pcVar13;
  int iVar14;
  int iVar15;
  code *pcVar16;
  uint *puVar17;
  undefined4 uVar18;
  undefined *puVar19;
  uint *puVar20;
  undefined4 uVar21;
  uint uVar22;
  code *pcVar23;
  byte *pbVar24;
  uint uVar25;
  byte *pbVar26;
  byte *pbVar27;
  short *psVar28;
  byte *pbVar29;
  undefined4 *puVar30;
  int iVar31;
  code *pcVar32;
  uint uVar33;
  code *pcVar34;
  code *unaff_s3;
  uint *unaff_s4;
  uint *unaff_s5;
  int iVar35;
  code *pcVar36;
  uint local_100;
  code *local_f8;
  code *local_f4;
  code *local_f0;
  uint local_ec;
  code *local_e8;
  uint *local_e4;
  code *local_e0;
  code *local_dc;
  code *local_d8;
  code *local_d4;
  int local_d0;
  code *local_cc;
  code *local_c8;
  code *local_c4;
  code *local_b4;
  code *local_b0;
  code *local_ac;
  uint local_a8;
  int local_a4;
  int local_a0;
  code *local_9c;
  code *local_98;
  int local_94;
  code *local_90;
  code *local_8c;
  uint local_88;
  int local_84;
  uint local_80;
  int local_7c;
  uint *local_78;
  uint local_64;
  int local_60;
  uint local_5c;
  uint *local_58;
  uint *local_54;
  int *local_50;
  uint local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  code *local_34;
  code *local_30;
  int local_2c;
  
  puVar8 = PTR___stack_chk_guard_000f5568;
  local_100 = param_6;
  pcVar34 = (code *)param_1[9];
  local_60 = 0;
  local_5c = 0;
  local_58 = (uint *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_000f5568;
  pcVar32 = (code *)*param_1;
  if ((pcVar34 == (code *)0x0) &&
     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {
    unaff_s4 = (uint *)FUN_000b6ddc();
    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;
    if (unaff_s4[0x12] == 0) {
      local_e0 = (code *)0xffff8000;
    }
    else {
      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);
    }
    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))
                                 (param_1,unaff_s4,0x7f,param_3,&local_64);
    local_e8 = (code *)unaff_s4[3];
    if (1 < *param_2) {
      pcVar34 = (code *)*param_3;
    }
    iVar31 = FUN_000a6004(param_1,unaff_s4);
    if (iVar31 != 0) goto LAB_000b7424;
    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);
    if (local_b0 != (code *)0x0) goto LAB_000b7424;
    local_d4 = (code *)param_1[10];
    uVar22 = unaff_s4[9];
    local_c4 = local_d4 + 1;
    uVar12 = unaff_s4[2];
    param_1[10] = (uint)local_c4;
    local_f0 = local_d4;
    if ((uVar22 & 0x80) == 0) {
      local_ec = 0;
      if (uVar12 == 0) {
        local_8c = (code *)0x0;
        goto LAB_000b7504;
      }
    }
    else {
      if (uVar12 == 0) goto LAB_000b82e4;
      bVar1 = *(byte *)(uVar12 + 0x37);
      local_ec = uVar12;
      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {
        bVar1 = *(byte *)(local_ec + 0x37);
      }
    }
    pcVar23 = local_c4;
    do {
      puVar17 = (uint *)(uVar12 + 0x14);
      if (uVar12 == local_ec) {
        local_f0 = pcVar23;
      }
      pcVar23 = pcVar23 + 1;
      local_8c = pcVar23 + ~(uint)local_d4;
      uVar12 = *puVar17;
    } while (*puVar17 != 0);
    param_1[10] = (uint)pcVar23;
    goto LAB_000b7504;
  }
  do {
    while( true ) {
      param_1 = unaff_s5;
      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);
      if (param_3 != (uint *)0x0) {
        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);
      }
      if (param_4 != 0) {
        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);
      }
      if (local_2c == *(int *)puVar8) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_000f5540)();
LAB_000b82e4:
      local_ec = 0;
      local_8c = (code *)0x0;
      local_f0 = local_d4;
LAB_000b7504:
      if (local_100 != 0) {
        local_f0 = *(code **)(local_100 + 0x1c);
        local_c4 = *(code **)(local_100 + 0x20);
        param_1[10] = (uint)local_d4;
      }
      puVar19 = PTR_LAB_000f52ec;
      param_2[0xc] = (int)local_f0;
      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);
      if (piVar9 != (int *)0x0) break;
LAB_000b7424:
      puVar17 = local_58;
      unaff_s5 = param_1;
      if (local_58 != (uint *)0x0) {
        local_58 = (uint *)0x0;
        puVar17[0x3d] = local_5c;
      }
    }
    pcVar23 = local_8c + 1;
    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));
    puVar10 = puVar17 + (int)pcVar23;
    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);
    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;
    sVar3 = *(short *)((int)unaff_s4 + 0x2a);
    if (0 < sVar3) {
      piVar11 = piVar9;
      do {
        *piVar11 = -1;
        piVar11 = piVar11 + 1;
      } while (piVar9 + sVar3 != piVar11);
    }
    local_f8 = (code *)param_1[2];
    local_48 = 0;
    local_4c = local_100;
    local_44 = 0;
    local_40 = 0;
    local_38 = 0;
    local_3c = 0x200;
    local_54 = param_1;
    local_50 = param_2;
    if (local_f8 == (code *)0x0) {
      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);
      puVar20 = unaff_s4;
      if (local_f8 != (code *)0x0) {
        uVar12 = *param_3;
        goto LAB_000b7624;
      }
    }
    else {
      uVar12 = *param_3;
LAB_000b7624:
      puVar7 = PTR_LAB_000f530c;
      puVar6 = PTR_DAT_000f52d4;
      puVar19 = PTR_LAB_000f52cc;
      local_d8 = unaff_s3;
      if ((int)uVar12 < 1) {
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (code *)0xffffffff;
      }
      else {
        puVar20 = param_3 + 1;
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (code *)0xffffffff;
        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);
        pcVar36 = (code *)0x0;
        do {
          unaff_s3 = pcVar36;
          if ((pcVar34 == (code *)0x0) &&
             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))
          goto LAB_000b7aa8;
          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
          pbVar29 = (byte *)puVar20[1];
          if (0 < iVar31) {
            puVar30 = (undefined4 *)unaff_s4[1];
            iVar35 = 0;
            do {
              pbVar27 = (byte *)*puVar30;
              uVar22 = (uint)*pbVar29;
              uVar12 = (uint)*pbVar27;
              pbVar24 = pbVar27;
              pbVar26 = pbVar29;
              if (uVar12 == uVar22) goto LAB_000b76e8;
              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {
                while( true ) {
                  pbVar24 = pbVar24 + 1;
                  uVar22 = (uint)pbVar26[1];
                  uVar12 = (uint)*pbVar24;
                  pbVar26 = pbVar26 + 1;
                  if (uVar12 != uVar22) break;
LAB_000b76e8:
                  if (uVar12 == 0) {
                    if (*(short *)(unaff_s4 + 10) == iVar35) {
                      local_b4 = (code *)*puVar20;
                      local_d8 = (code *)0x1;
                      local_ac = unaff_s3;
                    }
                    else {
                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {
                        piVar9[iVar35] = (int)unaff_s3;
                        if (iVar31 <= iVar35) goto LAB_000b7e5c;
                        uVar12 = *unaff_s4;
                        local_84 = 1;
                        goto LAB_000b7790;
                      }
                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {
                        (*(code *)(PTR_LAB_000f530c + -0x61d8))
                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);
                        goto LAB_000b7aa8;
                      }
                    }
                    piVar9[iVar35] = (int)unaff_s3;
                    if (iVar31 <= iVar35) goto LAB_000b7748;
                    uVar12 = *unaff_s4;
                    goto LAB_000b7790;
                  }
                }
              }
              iVar35 = iVar35 + 1;
              puVar30 = puVar30 + 5;
            } while (iVar35 != iVar31);
          }
LAB_000b7748:
          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {
LAB_000b7e5c:
            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);
            *(undefined1 *)((int)param_1 + 0x11) = 1;
            goto LAB_000b7aa8;
          }
          local_b4 = (code *)*puVar20;
          iVar35 = -1;
          uVar12 = *unaff_s4;
          local_d8 = (code *)0x1;
          pbVar27 = puVar19 + 0x7028;
          local_ac = unaff_s3;
LAB_000b7790:
          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))
                             (param_1,0x17,uVar12,pbVar27,
                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));
          if (iVar31 == 1) goto LAB_000b7aa8;
          if (iVar31 == 2) {
            piVar9[iVar35] = -1;
          }
          puVar20 = puVar20 + 4;
          pcVar36 = unaff_s3 + 1;
        } while ((int)(unaff_s3 + 1) < (int)*param_3);
      }
      uVar12 = (uint)(local_d8 + local_84) & 0xff;
      if ((unaff_s4[9] & 0x60) != 0) {
        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);
        do {
          if (iVar31 < 1) break;
          bVar5 = false;
          iVar35 = 0;
          piVar11 = piVar9;
          do {
            if ((*piVar11 < 0) &&
               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {
              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);
              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
              if (iVar14 != 0) {
                bVar5 = true;
                *piVar11 = 99999;
              }
            }
            iVar35 = iVar35 + 1;
            piVar11 = piVar11 + 1;
          } while (iVar35 < iVar31);
        } while (bVar5);
      }
      uVar22 = unaff_s4[0xe];
      uVar25 = *param_1;
      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);
      param_2[0x10] = -(uint)(uVar22 != 0);
      param_2[0x11] = -(uint)(uVar22 != 0);
      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);
      if (param_5 == 5) {
        local_60 = 1;
      }
      uVar22 = unaff_s4[2];
      local_78 = puVar17;
      if (uVar22 != 0) {
        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);
        iVar35 = 0;
        puVar20 = puVar17;
        do {
          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&
             ((*(int *)(uVar22 + 0x24) == 0 ||
              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {
            iVar14 = 0;
            if (*(short *)(uVar22 + 0x32) != 0) {
              do {
                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);
                if (iVar15 < 0) {
                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),
                                      piVar9,local_d8);
                }
                else {
                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;
                }
                iVar14 = iVar14 + 1;
                if (uVar25 != 0) {
                  uVar25 = param_1[0xb] + 1;
                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;
                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {
                    local_60 = 1;
                  }
                  goto LAB_000b79b4;
                }
              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));
            }
LAB_000b79c4:
            uVar25 = 0;
            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;
          }
          else {
            uVar25 = param_1[0xb] + 1;
            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;
LAB_000b79b4:
            if (uVar25 == 0) goto LAB_000b79c4;
          }
          uVar22 = *(uint *)(uVar22 + 0x14);
          iVar35 = iVar35 + 1;
          *puVar20 = uVar25;
          puVar20 = puVar20 + 1;
        } while (uVar22 != 0);
        local_78 = puVar17 + iVar35;
      }
      uVar22 = param_1[0xb];
      param_1[0xb] = uVar22 + 1;
      *local_78 = uVar22 + 1;
      if (local_60 != 0) {
        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);
      }
      if (*(char *)((int)param_1 + 0x12) == '\0') {
        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;
      }
      (*(code *)(PTR_LAB_000f5308 + -0x5698))
                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);
      uVar22 = unaff_s4[0xe];
      if (uVar22 == 0) {
        uVar25 = param_1[0xb];
        local_80 = *local_78;
        local_e0 = (code *)(uVar25 + 1);
        sVar3 = *(short *)((int)unaff_s4 + 0x2a);
        param_1[0xb] = (uint)local_e0;
        local_c8 = local_e0;
        if (local_84 == 0) {
          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {
            local_94 = 0;
            pcVar23 = local_e0;
            if (local_d8 == (code *)0x0) goto LAB_000b7c48;
          }
          else {
            local_94 = uVar25 + 2;
            param_1[0xb] = (uint)(local_e0 + sVar3);
            pcVar23 = local_e0 + sVar3;
          }
LAB_000b7c3c:
          local_c8 = pcVar23 + 1;
          param_1[0xb] = (uint)local_c8;
          pcVar23 = local_c8;
        }
        else {
          local_94 = uVar25 + 2;
          pcVar23 = local_e0 + sVar3;
          param_1[0xb] = (uint)pcVar23;
          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;
        }
LAB_000b7c48:
        local_90 = pcVar23 + 1;
        param_1[0xb] = (uint)(pcVar23 + sVar3);
      }
      else {
        local_80 = 0;
        local_94 = 0;
        local_90 = (code *)0x0;
        local_c8 = (code *)0x0;
        local_e0 = (code *)0x0;
      }
      unaff_s3 = local_d8;
      if (local_e8 == (code *)0x0) {
        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;
      }
      else {
        local_5c = param_1[0x3d];
        param_1[0x3d] = *unaff_s4;
        local_58 = param_1;
        if (pcVar34 == (code *)0x0) {
          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);
LAB_000b7cac:
          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);
          puVar20 = unaff_s4;
          if (iVar35 != 0) goto LAB_000b7aa8;
          uVar22 = unaff_s4[0xe];
        }
      }
      if (uVar22 == 0) {
        uVar22 = *(uint *)(pcVar32 + 0x20);
        local_b0 = (code *)(param_1[0xe] - 1);
        param_1[0xe] = (uint)local_b0;
        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||
            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {
          local_a8 = 0;
        }
        else {
          local_a8 = param_1[0xb] + 1;
          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          param_1[0xb] = local_a8;
          (*pcVar23)(local_f8,0x45,0,local_a8,0);
        }
        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {
          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          (*local_f4)(local_f8,0x48,0,local_80,local_e0);
          local_98 = (code *)0x0;
          local_dc = (code *)0x0;
          if (local_100 != 0) {
            local_d0 = 0;
LAB_000b7d5c:
            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);
            uVar22 = unaff_s4[9];
            local_cc = (code *)0x0;
            local_9c = (code *)0x0;
            local_88 = 0;
            cVar2 = '\x01';
            local_7c = 0;
LAB_000b7d98:
            if ((uVar22 & 0x80) == 0) {
              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);
              local_a4 = 0;
              local_9c = local_dc;
              local_dc = local_98;
            }
            else {
LAB_000b7da8:
              local_a4 = local_d0;
              if (0 < local_d0) {
LAB_000b7db0:
                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
                iVar35 = 0;
                pcVar23 = local_dc;
                do {
                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);
                  iVar35 = iVar35 + 2;
                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);
                  pcVar23 = pcVar23 + 1;
                  local_a4 = local_d0;
                } while (local_d0 << 1 != iVar35);
              }
              local_d0 = local_a4;
              if (cVar2 == '\0') {
                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
LAB_000b9410:
                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);
                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);
                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);
                local_9c = local_dc;
                local_a4 = 0;
                cVar2 = '\0';
                local_dc = local_98;
              }
              else if (local_9c == (code *)0x0) {
                local_9c = local_dc;
              }
              else {
                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);
                local_9c = local_dc;
              }
            }
            goto LAB_000b8330;
          }
          local_9c = (code *)0x0;
          local_cc = (code *)0x0;
          local_d0 = 0;
LAB_000b9260:
          uVar18 = 0x1004;
          if (*(char *)((int)param_1 + 0x12) == '\0') {
            if (local_e4 == (uint *)0x0) {
              uVar18 = 0x1004;
              if (iVar31 == 0) {
                if (uVar12 != 0) goto LAB_000b9278;
                uVar18 = 0x100c;
                if (local_60 != 0) {
                  uVar18 = 0x1004;
                }
              }
            }
            else {
LAB_000b9278:
              uVar18 = 0x1004;
            }
          }
          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);
          puVar20 = unaff_s4;
          if (local_7c == 0) goto LAB_000b7aa8;
          local_34 = *(code **)(local_7c + 0x14);
          local_30 = *(code **)(local_7c + 0x18);
          cVar2 = *(char *)(local_7c + 0x2e);
          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;
          if (cVar2 == '\x01') {
            uVar22 = unaff_s4[9];
            goto LAB_000b7d98;
          }
          puVar20 = (uint *)param_1[0x1d];
          if ((uint *)param_1[0x1d] == (uint *)0x0) {
            puVar20 = param_1;
          }
          *(undefined1 *)(puVar20 + 5) = 1;
          uVar22 = unaff_s4[9];
          if (cVar2 == '\x02') {
            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||
               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))
            goto LAB_000b7d98;
            if ((uVar22 & 0x80) == 0) {
              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
              goto LAB_000b937c;
            }
            if (0 < local_d0) {
              cVar2 = '\0';
              goto LAB_000b7db0;
            }
            goto LAB_000b9410;
          }
          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;
          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
          if (cVar2 == '\0') {
LAB_000b937c:
            uVar22 = param_1[0xb];
            param_1[0xb] = uVar22 + 1;
            *local_78 = uVar22 + 1;
            (*local_f4)(local_f8,0x93,local_80,local_e0,0);
            cVar2 = '\0';
          }
          local_9c = local_dc;
          local_a4 = 0;
          local_dc = local_98;
LAB_000b8ff0:
          if (cVar2 == '\x02') {
            if (local_e8 == (code *)0x0) {
LAB_000b9784:
              if (-1 < (int)local_34) {
                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;
              }
              if (-1 < (int)local_30) {
                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;
              }
              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {
                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);
                if (unaff_s4[0xe] == 0) goto LAB_000b908c;
                goto LAB_000b90c8;
              }
              if (unaff_s4[0xe] == 0) goto LAB_000b9084;
LAB_000b97d4:
              if ((local_34 != local_f0) && (local_30 != local_f0)) {
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);
              }
LAB_000b902c:
              local_d4 = local_b0;
              if (cVar2 != '\x01') goto LAB_000b9038;
            }
            else {
LAB_000b9038:
              uVar22 = param_1[0xe];
              param_1[0xe] = uVar22 - 1;
              local_d4 = (code *)(uVar22 - 1);
            }
            pcVar23 = local_dc;
            if (local_ec == 0) {
              pcVar23 = local_e0;
            }
            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);
            pcVar23 = local_d4;
            goto LAB_000b8340;
          }
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
LAB_000b9014:
          if (local_e8 == (code *)0x0) {
            if (cVar2 != '\0') goto LAB_000b9784;
            if (unaff_s4[0xe] != 0) goto LAB_000b911c;
LAB_000b9084:
            iVar35 = 0;
LAB_000b908c:
            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);
LAB_000b90c8:
            if (iVar35 != 0) {
              iVar14 = *(int *)(local_f8 + 0x6c) + -1;
              if (iVar14 == iVar35) {
                *(int *)(local_f8 + 0x6c) = iVar35;
              }
              else {
                if (-1 < iVar35) {
                  iVar14 = iVar35;
                }
                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {
                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));
                }
                else {
                  puVar19 = PTR_DAT_000f52bc + 0x5860;
                }
                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);
              }
            }
            if (cVar2 != '\0') goto LAB_000b97d4;
          }
          else if (cVar2 != '\0') goto LAB_000b902c;
LAB_000b911c:
          if (local_ec == 0) {
            if (pcVar34 != (code *)0x0) {
              local_d4 = (code *)(param_1[0xe] - 1);
              param_1[0xe] = (uint)local_d4;
              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
              local_a0 = *(int *)(local_f8 + 0x6c);
              if (local_e8 == (code *)0x0) {
                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);
                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              goto LAB_000b916c;
            }
            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);
            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
            local_a0 = 0;
LAB_000b9a58:
            if (local_d8 == (code *)0x0) goto LAB_000b839c;
LAB_000b8358:
            if (param_1[2] != 0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);
            }
            goto LAB_000b837c;
          }
          local_d4 = (code *)(param_1[0xe] - 1);
          param_1[0xe] = (uint)local_d4;
          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
          local_a0 = *(int *)(local_f8 + 0x6c);
          if (pcVar34 == (code *)0x0) {
            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);
            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);
            goto LAB_000b9a58;
          }
          iVar35 = 0;
          if (local_e8 == (code *)0x0) {
            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {
              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);
            }
            (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);
          }
LAB_000b916c:
          if (local_d8 != (code *)0x0) goto LAB_000b9174;
        }
        else {
          if (local_ec == 0) {
            local_d0 = 0;
          }
          else {
            local_d0 = (int)*(short *)(local_ec + 0x32);
          }
          local_a4 = local_d0;
          local_dc = (code *)(param_1[0xb] + 1);
          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;
          param_1[0xb] = (uint)local_98;
          if (local_100 == 0) {
            iVar35 = 0;
            if (local_e8 != (code *)0x0) {
              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
            }
            local_cc = (code *)param_1[10];
            pcVar23 = pcVar34 + iVar35 + local_d0;
            param_1[10] = (uint)(local_cc + 1);
            puVar19 = PTR_LAB_000f52e8;
            if (local_ec == 0) {
              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))
                                           (local_f8,100,local_cc,pcVar23,0);
            }
            else {
              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);
              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);
              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);
              if (iVar35 != 0) {
                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);
                *(short *)(iVar35 + 8) = (short)pcVar23;
                (*pcVar36)(local_f8,iVar35,0xfffffff7);
              }
            }
            local_f4 = (code *)(puVar19 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b9260;
            if (local_e8 != (code *)0x0) {
              local_f0 = local_cc;
            }
            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))
                      (param_1,local_cc,local_ec,param_3,param_2,param_4);
          }
          else {
            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;
            local_cc = (code *)0x0;
          }
          cVar2 = '\0';
          puVar20 = (uint *)param_1[0x1d];
          if ((uint *)param_1[0x1d] == (uint *)0x0) {
            puVar20 = param_1;
          }
          local_7c = 0;
          local_88 = 1;
          *(undefined1 *)(puVar20 + 5) = 1;
          local_9c = local_dc;
LAB_000b8330:
          pcVar23 = local_b0;
          if (local_100 == 0) {
            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;
            goto LAB_000b9014;
          }
LAB_000b8340:
          local_d4 = pcVar23;
          local_a0 = 0;
          if (local_d8 != (code *)0x0) {
            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b8358;
LAB_000b9174:
            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);
LAB_000b837c:
            (*local_f4)(local_f8,0xf,local_c8,0,0);
          }
        }
LAB_000b839c:
        if (local_84 == 0) {
          if (iVar31 != 0) goto LAB_000b8840;
          if (local_e4 != (uint *)0x0) goto LAB_000b8838;
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
        }
        else {
          uVar22 = 0;
          if (iVar31 != 0) {
LAB_000b8840:
            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {
LAB_000b8838:
              uVar22 = 0;
            }
            else {
              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);
            }
          }
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);
          puVar19 = PTR_LAB_000f52e8;
          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {
            local_f4 = (code *)0x0;
            uVar33 = 0;
            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);
            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
            do {
              iVar35 = (int)(short)uVar33;
              if ((unaff_s4[9] & 0x20) != 0) {
                iVar35 = (*pcVar23)(unaff_s4,iVar35);
              }
              if (((uVar25 | uVar22) == 0xffffffff) ||
                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||
                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {
                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);
              }
              else {
                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);
              }
              uVar33 = uVar33 + 1;
              local_f4 = (code *)((int)local_f4 + 0x14);
            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));
          }
          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {
            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);
          }
        }
        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);
        puVar19 = PTR_LAB_000f5308;
        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
        if (0 < iVar35) {
          uVar25 = 0;
          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          pcVar23 = local_90;
          do {
            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {
LAB_000b8640:
              (*pcVar13)(local_f8,0x48,0,pcVar23,0);
              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
            }
            else {
              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);
              if ((uVar4 & 0x60) == 0) {
                iVar14 = piVar9[uVar25];
                if (iVar14 < 0) {
                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&
                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;
                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);
                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                  local_88 = 0;
                }
                else if (pcVar34 == (code *)0x0) {
                  if (param_1[2] != 0) {
                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);
                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                  }
                }
                else {
                  iVar15 = local_d0;
                  if (local_e8 != (code *)0x0) {
                    iVar15 = iVar35;
                  }
                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);
                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                }
              }
              else if ((uVar4 & 0x20) != 0) {
                pcVar23 = pcVar23 + -1;
              }
            }
            uVar25 = uVar25 + 1;
            pcVar23 = pcVar23 + 1;
          } while ((int)uVar25 < iVar35);
        }
        if ((unaff_s4[9] & 0x60) != 0) {
          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);
        }
        if ((local_64 & 1) == 0) {
          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);
          if (local_e8 == (code *)0x0) {
LAB_000b8da4:
            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))
                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,
                       param_5 & 0xff,local_d4,&local_60,piVar9,0);
            if ((local_60 != 0) || (uVar12 != 0)) {
              if (local_ec == 0) {
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              else {
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
              }
            }
            if (iVar31 == 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);
              if (local_88 != 0) {
LAB_000b8f88:
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);
                goto LAB_000b8fac;
              }
              if (uVar12 != 0) goto LAB_000b8ea8;
            }
            else {
              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);
              if (local_88 != 0) goto LAB_000b8f88;
LAB_000b8fac:
              if ((1 < iVar31) || (uVar12 != 0)) {
LAB_000b8ea8:
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);
              }
              if (iVar31 != 0) {
                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);
                if (cVar2 == '\x02') {
                  uVar18 = 6;
                }
                else {
                  uVar18 = 4;
                }
                (*(code *)(PTR_000f5314 + 0x645c))
                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);
                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {
                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))
                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);
                }
                goto LAB_000b8698;
              }
            }
            if (cVar2 == '\x02') {
              uVar18 = 6;
            }
            else {
              uVar18 = 4;
            }
            (*(code *)(PTR_000f5314 + 0x645c))
                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);
          }
        }
        else {
          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);
          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);
          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);
          if (local_e8 == (code *)0x0) {
            if (local_ec == 0) {
              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
            }
            else {
              (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
            }
            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);
            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
            pcVar23 = local_90;
            iVar35 = 0;
            while (iVar35 < iVar14) {
              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);
              if ((uVar4 & 0x60) == 0) {
                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))
                goto LAB_000b95b4;
                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);
                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);
                pcVar23 = pcVar23 + 1;
                iVar35 = iVar35 + 1;
                local_e8 = pcVar36;
              }
              else {
                if ((uVar4 & 0x20) != 0) {
                  pcVar23 = pcVar23 + -1;
                }
LAB_000b95b4:
                pcVar23 = pcVar23 + 1;
                iVar35 = iVar35 + 1;
              }
            }
            if ((unaff_s4[9] & 0x60) != 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);
            }
            goto LAB_000b8da4;
          }
        }
LAB_000b8698:
        if (local_a8 != 0) {
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);
        }
        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);
        if (cVar2 == '\x01') {
LAB_000b881c:
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
        }
        else if (cVar2 == '\x02') {
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
          (*pcVar34)(local_f8,local_d4);
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
        }
        else {
          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {
            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);
            goto LAB_000b881c;
          }
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
          (*pcVar34)(local_f8,local_d4);
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);
          unaff_s3 = local_f8;
        }
        (*pcVar34)(local_f8,local_b0);
        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))
           && (param_1[0x1c] != 0)) {
          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);
        }
        puVar20 = unaff_s4;
        if (local_a8 != 0) {
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);
          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);
          pcVar34 = local_f8;
          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {
            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);
          }
        }
      }
      else {
        local_e4 = (uint *)unaff_s4[0x10];
        pcVar34 = (code *)param_1[2];
        uVar12 = *param_1;
        if (local_e4 != (uint *)0x0) {
          uVar22 = *local_e4;
          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {
            uVar22 = *local_e4;
          }
        }
        local_100 = param_1[10];
        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;
        iVar31 = param_2[0xc];
        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
        param_1[10] = local_100 + 1;
        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);
        local_e0 = (code *)param_1[0xb];
        iVar35 = *param_2;
        pcVar23 = local_e0 + iVar14;
        local_e8 = local_e0 + 1;
        param_1[0xb] = (uint)pcVar23;
        if (iVar35 < 2) {
          pcVar13 = pcVar23 + 2;
          param_1[0xb] = (uint)pcVar13;
          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);
          puVar20 = unaff_s4;
          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;
          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
          local_d4 = local_e0 + 3;
          iVar15 = 0;
          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);
          piVar11 = piVar9;
          while (iVar15 < iVar35) {
            if (*piVar11 < 0) {
              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);
              if (*(int *)(pcVar34 + 0x6c) < 1) {
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                iVar15 = iVar15 + 1;
                piVar11 = piVar11 + 1;
              }
              else {
                iVar15 = iVar15 + 1;
                piVar11 = piVar11 + 1;
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)
                     = 1;
              }
            }
            else {
              if (param_1[2] != 0) {
                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
              }
              iVar15 = iVar15 + 1;
              piVar11 = piVar11 + 1;
            }
          }
          if ((unaff_s4[9] & 0x80) == 0) {
            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);
            if (local_b4 == (code *)0x0) {
              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);
            }
            else if (param_1[2] != 0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);
            }
          }
          else {
            uVar12 = unaff_s4[2];
            while( true ) {
              if (uVar12 == 0) {
                    /* WARNING: Does not return */
                pcVar34 = (code *)trap(0);
                (*pcVar34)();
              }
              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;
              uVar12 = *(uint *)(uVar12 + 0x14);
            }
            local_d4 = (code *)(int)**(short **)(uVar12 + 4);
            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);
            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);
          }
          local_34 = *(code **)(unaff_s3 + 0x14);
          local_30 = *(code **)(unaff_s3 + 0x18);
          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];
          if (pcVar16 == (code *)0x0) {
            puVar17 = (uint *)param_1[0x1d];
            if ((uint *)param_1[0x1d] == (uint *)0x0) {
              puVar17 = param_1;
            }
            *(undefined1 *)(puVar17 + 5) = 1;
            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);
            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);
            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);
            goto LAB_000b80d0;
          }
          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);
          (*pcVar36)(pcVar34,0x74,iVar31,0,0);
          local_e0 = pcVar16;
          local_b0 = pcVar16;
        }
        else {
          if (local_b4 == (code *)0x0) {
            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);
          }
          else {
            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);
          }
          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);
          iVar31 = (*local_e0)(*param_1,0,uVar18);
          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {
            local_f0 = (code *)0x1;
            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);
            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);
            local_f8 = (code *)piVar9;
            do {
              if (*(int *)local_f8 < 0) {
                uVar22 = (*pcVar23)(param_1,0x4b,0,0);
                if (uVar22 != 0) {
                  *(short *)(uVar22 + 0x20) = (short)local_f0;
                }
              }
              else {
                uVar22 = param_3[*(int *)local_f8 * 4 + 1];
                if (uVar22 != 0) {
                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);
                }
              }
              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);
              local_f8 = (code *)((int)local_f8 + 4);
              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);
              local_f0 = (code *)((int)local_f0 + 1);
              local_d4 = pcVar32;
            } while (bVar5);
          }
          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);
          if (iVar31 == 0) {
            unaff_s3 = (code *)0x0;
          }
          else {
            unaff_s3 = (code *)0x0;
            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);
          }
LAB_000b80d0:
          if (*param_2 == 1) {
            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          }
          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);
          iVar31 = 0;
          if (0 < iVar14) {
            do {
              iVar35 = iVar31 + 1;
              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);
              iVar31 = iVar35;
            } while (iVar14 != iVar35);
          }
        }
        pcVar23 = local_f0;
        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);
        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);
        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);
        if (param_5 == 0xb) {
          param_5 = 2;
        }
        if (0 < *(int *)(pcVar34 + 0x6c)) {
          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =
               (short)param_5;
        }
        puVar17 = (uint *)param_1[0x1d];
        if ((uint *)param_1[0x1d] == (uint *)0x0) {
          puVar17 = param_1;
        }
        *(undefined1 *)((int)puVar17 + 0x15) = 1;
        if (local_b0 == (code *)0x0) {
          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);
          if ((int)local_f0 < 0) {
            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);
          }
          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {
            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));
          }
          else {
            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);
          }
          param_1[2] = *(uint *)(pcVar34 + 0x6c);
          (*pcVar36)(pcVar34,0x74,local_100,0,0);
          unaff_s3 = pcVar23;
          puVar20 = unaff_s4;
        }
        else {
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          puVar20 = unaff_s4;
        }
      }
    }
LAB_000b7aa8:
    puVar17 = local_58;
    if (local_58 != (uint *)0x0) {
      local_58 = (uint *)0x0;
      puVar17[0x3d] = local_5c;
    }
    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);
    unaff_s4 = puVar20;
    unaff_s5 = param_1;
  } while( true );
}


lui gp,0x4
addiu gp,gp,0x6024
addu gp,gp,t9
addiu sp,sp,-0x140
lw v0,0x154(sp)
sw s6,0x130(sp)
sw s2,0x120(sp)
sw v0,0x40(sp)
lw s6,-0x7d38(gp)
lw s2,0x24(a0)
sw gp,0x38(sp)
sw s8,0x138(sp)
or s8,a3,zero
sw s7,0x134(sp)
or s7,a1,zero
sw s1,0x11c(sp)
or s1,a2,zero
sw s0,0x118(sp)
sw ra,0x13c(sp)
sw s5,0x12c(sp)
sw s4,0x128(sp)
sw s3,0x124(sp)
sw zero,0xe0(sp)
sw zero,0xe4(sp)
sw zero,0xe8(sp)
lw v0,0x0(s6)
lw s0,0x0(a0)
sw v0,0x114(sp)
bne s2,zero,0x000b7304
_lw t9,-0x7f94(gp)
lbu s3,0x51(s0)
beq s3,zero,0x000b738c
_lw t9,-0x7f9c(gp)
lw t9,-0x7f94(gp)
or a1,s7,zero
addiu t9,t9,0x35c8
jalr t9
_or a0,s0,zero
beq s1,zero,0x000b7334
_lw gp,0x38(sp)
lw t9,-0x7f94(gp)
or a1,s1,zero
addiu t9,t9,0x3aa4
jalr t9
_or a0,s0,zero
lw gp,0x38(sp)
beq s8,zero,0x000b7350
_lw t9,-0x7f94(gp)
or a1,s8,zero
addiu t9,t9,0x3940
jalr t9
_or a0,s0,zero
lw gp,0x38(sp)
lw v1,0x114(sp)
lw v0,0x0(s6)
bne v1,v0,0x000b82d8
_lw ra,0x13c(sp)
lw s8,0x138(sp)
lw s7,0x134(sp)
lw s6,0x130(sp)
lw s5,0x12c(sp)
lw s4,0x128(sp)
lw s3,0x124(sp)
lw s2,0x120(sp)
lw s1,0x11c(sp)
lw s0,0x118(sp)
jr ra
_addiu sp,sp,0x140
addiu t9,t9,0x6ddc
bal 0x000b6ddc
_or s5,a0,zero
lw gp,0x38(sp)
beq v0,zero,0x000b7424
_or s4,v0,zero
lw a1,0x48(v0)
beq a1,zero,0x000b7a74
_lw t9,-0x7fb4(gp)
addiu t9,t9,0x1608
jalr t9
_lw a0,0x0(s5)
lw gp,0x38(sp)
sw v0,0x60(sp)
lw t9,-0x7fb4(gp)
addiu v0,sp,0xdc
li a2,0x7f
sw v0,0x10(sp)
or a3,s1,zero
addiu t9,t9,0x20b0
or a1,s4,zero
jalr t9
_or a0,s5,zero
lw v1,0x0(s7)
lw gp,0x38(sp)
sw v0,0x5c(sp)
lw v0,0xc(s4)
slti v1,v1,0x2
bne v1,zero,0x000b7408
_sw v0,0x58(sp)
lw s2,0x0(s1)
lw t9,-0x7f88(gp)
or a1,s4,zero
addiu t9,t9,0x6004
bal 0x000a6004
_or a0,s5,zero
beq v0,zero,0x000b743c
_lw gp,0x38(sp)
lw v1,0xe8(sp)
beq v1,zero,0x000b7300
_lw v0,0xe4(sp)
sw zero,0xe8(sp)
b 0x000b7300
_sw v0,0xf4(v1)
lw t9,-0x7f94(gp)
or a1,s4,zero
lw a2,0xdc(sp)
addiu t9,t9,-0x45b0
jalr t9
_or a0,s5,zero
lw gp,0x38(sp)
bne v0,zero,0x000b7424
_sw v0,0x90(sp)
lw v0,0x28(s5)
lw v1,0x24(s4)
or a0,v0,zero
sw v0,0x6c(sp)
addiu a0,a0,0x1
lw v0,0x8(s4)
andi v1,v1,0x80
sw a0,0x7c(sp)
beq v1,zero,0x000b7b1c
_sw a0,0x28(s5)
beq v0,zero,0x000b82e4
_li a0,0x80
lbu v1,0x37(v0)
andi v1,v1,0xc0
beq v1,a0,0x000b8300
_li a1,-0x40
b 0x000b74b8
_or v1,v0,zero
lbu a2,0x37(v1)
and a2,a1,a2
beq a2,a0,0x000b74c4
_nop
lw v1,0x14(v1)
bne v1,zero,0x000b74a8
_nop
sw v1,0x54(sp)
lw a1,0x6c(sp)
lw v1,0x7c(sp)
lw a3,0x54(sp)
or a0,a1,zero
nor a1,zero,a1
xor a2,v0,a3
lw v0,0x14(v0)
movz a0,v1,a2
addiu v1,v1,0x1
bne v0,zero,0x000b74dc
_addu t0,a1,v1
addiu a3,t0,0x2
sw a0,0x50(sp)
sw t0,0xb4(sp)
sw v1,0x28(s5)
lw v0,0x40(sp)
beq v0,zero,0x000b752c
_lw v1,0x50(sp)
lw v1,0x1c(v0)
lw v0,0x20(v0)
sw v1,0x50(sp)
sw v0,0x7c(sp)
lw v0,0x6c(sp)
sw v0,0x28(s5)
lw v1,0x50(sp)
or a2,zero,zero
lh v0,0x2a(s4)
or a0,s0,zero
lw t9,-0x7fb4(gp)
sw v1,0x30(s7)
lw v1,0xb4(sp)
addiu t9,t9,0x6c00
sw t0,0x48(sp)
addu v0,v0,v1
addiu v0,v0,0x1
sll v0,v0,0x2
jalr t9
_addu a3,v0,a3
lw gp,0x38(sp)
lw t0,0x48(sp)
beq v0,zero,0x000b7424
_sw v0,0x44(sp)
lh v0,0x2a(s4)
addiu a0,t0,0x1
lw a3,0x44(sp)
li a1,0x1
sll v1,a0,0x2
lw t9,-0x7e50(gp)
sll v0,v0,0x2
sw a0,0x98(sp)
or a2,a0,zero
addu v0,a3,v0
sw v0,0x84(sp)
addu v0,v0,v1
or a0,v0,zero
jalr t9
_sw v0,0xa0(sp)
lw v0,0xa0(sp)
lw a0,0x98(sp)
lw gp,0x38(sp)
addu v0,v0,a0
sb zero,0x0(v0)
lh v0,0x2a(s4)
blez v0,0x000b75ec
_lw a1,0x44(sp)
sll v0,v0,0x2
li a0,-0x1
addu v1,v0,a1
or v0,a1,zero
sw a0,0x0(v0)
addiu v0,v0,0x4
bne v1,v0,0x000b75dc
_nop
lw v0,0x40(sp)
lw v1,0x8(s5)
sw zero,0xf8(sp)
sw v0,0xf4(sp)
li v0,0x200
sw v1,0x48(sp)
sw zero,0xfc(sp)
sw zero,0x100(sp)
sw zero,0x108(sp)
sw s5,0xec(sp)
sw s7,0xf0(sp)
beq v1,zero,0x000b7e38
_sw v0,0x104(sp)
lw v0,0x0(s1)
blez v0,0x000b99d0
_lw v0,0x60(sp)
addiu t4,s1,0x4
lw t0,-0x7fcc(gp)
or t3,zero,zero
sw s3,0x68(sp)
sll v0,v0,0x4
sw s8,0x74(sp)
addiu t0,t0,0x25ac
sw zero,0xbc(sp)
sw v0,0x64(sp)
or s8,s4,zero
lw v0,-0x7f94(gp)
or s3,t3,zero
sw zero,0x8c(sp)
or s4,t4,zero
sw s7,0x70(sp)
sw v0,0x88(sp)
lw v0,-0x7fd4(gp)
sw v0,0x80(sp)
li v0,-0x1
sw v0,0x94(sp)
lw v0,-0x7fb4(gp)
addiu v0,v0,0x514
sw v0,0x78(sp)
beq s2,zero,0x000b7a80
_lw v0,0x88(sp)
lh t7,0x2a(s8)
blez t7,0x000b7748
_lw t5,0x4(s4)
lw t6,0x4(s8)
or s7,zero,zero
lw a3,0x0(t6)
or a1,t5,zero
lbu v1,0x0(a1)
or a0,a3,zero
lbu v0,0x0(a0)
beq v0,v1,0x000b76e8
_nop
addu v0,v0,t0
addu v1,v1,t0
lbu a2,0x0(v0)
lbu v0,0x0(v1)
bne a2,v0,0x000b773c
_addiu a0,a0,0x1
lbu v1,0x1(a1)
lbu v0,0x0(a0)
bne v0,v1,0x000b76c0
_addiu a1,a1,0x1
bne v0,zero,0x000b76d8
_addiu a0,a0,0x1
addiu a0,a0,-0x1
lh v0,0x28(s8)
beq v0,s7,0x000b7b04
_lw v1,0x54(sp)
beq v1,zero,0x000b7ad8
_lhu v0,0x10(t6)
andi v1,v0,0x1
beq v1,zero,0x000b7adc
_andi v0,v0,0x60
lw v1,0x44(sp)
sll v0,s7,0x2
slt t7,s7,t7
addu v0,v1,v0
beq t7,zero,0x000b7e5c
_sw s3,0x0(v0)
li v0,0x1
lw a2,0x0(s8)
b 0x000b7790
_sw v0,0xbc(sp)
addiu s7,s7,0x1
bne s7,t7,0x000b76a4
_addiu t6,t6,0x14
lw v0,0x54(sp)
bne v0,zero,0x000b7e5c
_lw t9,0x78(sp)
or a0,t5,zero
jalr t9
_sw t0,0x4c(sp)
beq v0,zero,0x000b7e5c
_lw gp,0x38(sp)
lw v0,0x0(s4)
li s7,-0x1
lw a2,0x0(s8)
lw t0,0x4c(sp)
sw v0,0x8c(sp)
li v0,0x1
sw s3,0x94(sp)
sw v0,0x68(sp)
lw v0,0x80(sp)
addiu a3,v0,0x7028
lw v0,0x10(s0)
li a1,0x17
lw v1,0x64(sp)
or a0,s5,zero
lw t9,-0x7f94(gp)
sw t0,0x4c(sp)
addu v0,v0,v1
addiu t9,t9,-0x5ce4
lw v0,0x0(v0)
jalr t9
_sw v0,0x10(sp)
li v1,0x1
beq v0,v1,0x000b7aa0
_lw gp,0x38(sp)
li v1,0x2
bne v0,v1,0x000b77e8
_lw t0,0x4c(sp)
lw v1,0x44(sp)
sll v0,s7,0x2
addu v0,v1,v0
li v1,-0x1
sw v1,0x0(v0)
lw v0,0x0(s1)
addiu s3,s3,0x1
slt v0,s3,v0
bne v0,zero,0x000b7688
_addiu s4,s4,0x10
or s4,s8,zero
lw s3,0x68(sp)
lw s7,0x70(sp)
lw s8,0x74(sp)
lw v1,0xbc(sp)
lw v0,0x24(s4)
addu v1,s3,v1
andi v0,v0,0x60
andi v1,v1,0xff
beq v0,zero,0x000b7908
_sw v1,0x80(sp)
lw t9,-0x7fb4(gp)
lui t2,0x1
lh a0,0x2a(s4)
or a3,s7,zero
or t1,s8,zero
addiu t9,t9,-0x71c
or s8,s5,zero
ori t2,t2,0x869f
or s7,s2,zero
or t0,s1,zero
or s5,s0,zero
blez a0,0x000b78f0
_lw s1,0x44(sp)
or s2,zero,zero
or s0,zero,zero
lw v0,0x0(s1)
bgez v0,0x000b78d8
_sll v0,s0,0x2
lw v1,0x4(s4)
addu v0,v0,s0
sll v0,v0,0x2
addu v0,v1,v0
lhu v1,0x10(v0)
andi v1,v1,0x60
beq v1,zero,0x000b78d8
_or a2,s3,zero
lw a0,0x4(v0)
lw a1,0x44(sp)
sw t1,0x74(sp)
sw t0,0x70(sp)
sw a3,0x68(sp)
sw t2,0x64(sp)
jalr t9
_sw t9,0x4c(sp)
lw gp,0x38(sp)
lw t9,0x4c(sp)
lw t2,0x64(sp)
lw a3,0x68(sp)
lw t0,0x70(sp)
lw t1,0x74(sp)
beq v0,zero,0x000b78d8
_lh a0,0x2a(s4)
li s2,0x1
sw t2,0x0(s1)
addiu s0,s0,0x1
slt v0,s0,a0
bne v0,zero,0x000b7864
_addiu s1,s1,0x4
bne s2,zero,0x000b7854
_nop
or s0,s5,zero
or s2,s7,zero
or s5,s8,zero
or s7,a3,zero
or s1,t0,zero
or s8,t1,zero
lw v0,0x38(s4)
or a1,s4,zero
lw t9,-0x7fb4(gp)
lw a0,0x0(s5)
sltu v0,zero,v0
lw a3,0x80(sp)
subu v0,zero,v0
lw a2,0x44(sp)
addiu t9,t9,0x1208
sw v0,0x40(s7)
jalr t9
_sw v0,0x44(s7)
li v1,0x5
lw gp,0x38(sp)
sw v0,0x88(sp)
lw v0,0x150(sp)
beq v0,v1,0x000b892c
_li v0,0x1
lw v1,0x8(s4)
beq v1,zero,0x000b8c60
_lw v0,0x88(sp)
or a3,zero,zero
lw t0,0x84(sp)
sw s0,0x68(sp)
or s0,v1,zero
slti v0,v0,0x2
sw s2,0x70(sp)
sw v0,0x64(sp)
or s2,s3,zero
lw v0,-0x7fb4(gp)
or s3,t0,zero
sw s4,0x74(sp)
or s4,s5,zero
or s5,s1,zero
addiu v0,v0,-0x71c
or s1,a3,zero
b 0x000b79e0
_sw v0,0x4c(sp)
lw v0,0x2c(s4)
lhu v1,0x34(s0)
addiu v0,v0,0x1
addu v1,v1,v0
sw v1,0x2c(s4)
bne v0,zero,0x000b79cc
_nop
lw v0,0xa0(sp)
addu v1,v0,s1
or v0,zero,zero
sb zero,0x1(v1)
lw s0,0x14(s0)
addiu s1,s1,0x1
sw v0,0x0(s3)
beq s0,zero,0x000b7b3c
_addiu s3,s3,0x4
lw v0,0x80(sp)
bne v0,zero,0x000b79a0
_lw v0,0x64(sp)
beq v0,zero,0x000b79a0
_lw v0,0x54(sp)
beq s0,v0,0x000b79a0
_nop
lw a0,0x24(s0)
beq a0,zero,0x000b7a1c
_lw a1,0x44(sp)
lw t9,0x4c(sp)
jalr t9
_or a2,s2,zero
bne v0,zero,0x000b79a0
_lw gp,0x38(sp)
lhu v0,0x32(s0)
beq v0,zero,0x000b79bc
_or t3,zero,zero
lw v0,0x4(s0)
sll v1,t3,0x1
addu v0,v0,v1
lh v0,0x0(v0)
bltz v0,0x000b7e90
_lw v1,0x44(sp)
sll v0,v0,0x2
addu v0,v1,v0
lw v0,0x0(v0)
nor v0,zero,v0
srl v0,v0,0x1f
bne v0,zero,0x000b8268
_addiu t3,t3,0x1
lhu v0,0x32(s0)
slt v0,t3,v0
bne v0,zero,0x000b7a28
_lw v0,0xa0(sp)
b 0x000b79c4
_addu v1,v0,s1
li v0,-0x8000
b 0x000b73c4
_sw v0,0x60(sp)
addiu a0,sp,0xec
lw a1,0x0(s4)
addiu t9,v0,-0x562c
jalr t9
_sw t0,0x4c(sp)
lw gp,0x38(sp)
beq v0,zero,0x000b7690
_lw t0,0x4c(sp)
lw s7,0x70(sp)
lw s8,0x74(sp)
lw v0,0xe8(sp)
beq v0,zero,0x000b7abc
_lw v1,0xe4(sp)
sw zero,0xe8(sp)
sw v1,0xf4(v0)
lw t9,-0x7fb4(gp)
or a0,s0,zero
addiu t9,t9,-0x7728
jalr t9
_lw a1,0x44(sp)
b 0x000b7300
_lw gp,0x38(sp)
andi v0,v0,0x60
bne v0,zero,0x000b8904
_lw a1,-0x7fcc(gp)
lw v1,0x44(sp)
sll v0,s7,0x2
slt t7,s7,t7
addu v0,v1,v0
beq t7,zero,0x000b7748
_sw s3,0x0(v0)
b 0x000b7790
_lw a2,0x0(s8)
lw v0,0x0(s4)
sw s3,0x94(sp)
sw v0,0x8c(sp)
li v0,0x1
b 0x000b7ae4
_sw v0,0x68(sp)
bne v0,zero,0x000b74c8
_sw zero,0x54(sp)
lw v0,0x6c(sp)
li a3,0x2
sw zero,0xb4(sp)
or t0,zero,zero
b 0x000b7504
_sw v0,0x50(sp)
or a3,s1,zero
lw v0,0x84(sp)
sll a3,a3,0x2
lw s0,0x68(sp)
or s3,s2,zero
lw s2,0x70(sp)
or s1,s5,zero
addu v0,v0,a3
or s5,s4,zero
lw s4,0x74(sp)
sw v0,0xc8(sp)
lw v0,0x2c(s5)
lw v1,0xc8(sp)
addiu v0,v0,0x1
sw v0,0x2c(s5)
sw v0,0x0(v1)
lw v0,0xe0(sp)
beq v0,zero,0x000b7b9c
_lw t9,-0x7e50(gp)
li a1,0x1
lw a2,0x98(sp)
jalr t9
_lw a0,0xa0(sp)
lw gp,0x38(sp)
lbu v0,0x12(s5)
bne v0,zero,0x000b7bc0
_lw v0,0x5c(sp)
lw a0,0x48(sp)
li v1,0x1
lhu v0,0x96(a0)
ins v0,v1,0xb,0x1
sh v0,0x96(a0)
lw v0,0x5c(sp)
beq v0,zero,0x000b88fc
_lw v0,0x88(sp)
li a1,0x1
lw t9,-0x7f98(gp)
or a0,s5,zero
addiu t9,t9,-0x5698
jalr t9
_lw a2,0x60(sp)
lw a1,0x38(s4)
bne a1,zero,0x000b7ec0
_lw gp,0x38(sp)
lw v1,0xc8(sp)
lw v0,0x2c(s5)
lw v1,0x0(v1)
addiu a2,v0,0x1
or a0,v0,zero
sw a2,0x60(sp)
or v0,a2,zero
sw v1,0xc0(sp)
lh v1,0x2a(s4)
sw a2,0x2c(s5)
lw a2,0xbc(sp)
bne a2,zero,0x000b82a0
_lw a2,0x5c(sp)
beq a2,zero,0x000b8c78
_lw a2,0x88(sp)
lw v0,0x60(sp)
addiu a0,a0,0x2
sw a0,0xac(sp)
addu v0,v0,v1
sw v0,0x2c(s5)
addiu v0,v0,0x1
sw v0,0x78(sp)
sw v0,0x2c(s5)
addu v1,v0,v1
addiu v0,v0,0x1
sw v1,0x2c(s5)
sw v0,0xb0(sp)
lw v0,0x58(sp)
beq v0,zero,0x000b8934
_nop
lw v1,0x0(s4)
lw v0,0xf4(s5)
sw s5,0xe8(sp)
sw v1,0xf4(s5)
bne s2,zero,0x000b7cc4
_sw v0,0xe4(sp)
lw t9,-0x7f88(gp)
or a3,s8,zero
lw v0,0x50(sp)
or a1,s4,zero
lw a2,0x48(s4)
or a0,s5,zero
addiu t9,t9,0x5e24
bal 0x000a5e24
_sw v0,0x10(sp)
lw gp,0x38(sp)
lw t9,-0x7f94(gp)
addiu a0,sp,0xec
addiu t9,t9,-0x562c
jalr t9
_or a1,s8,zero
bne v0,zero,0x000b7aa8
_lw gp,0x38(sp)
lw a1,0x38(s4)
bne a1,zero,0x000b7ed8
_sw a1,0xcc(sp)
lw v1,0x38(s5)
lw v0,0x20(s0)
addiu v1,v1,-0x1
andi v0,v0,0x1
sw v1,0x90(sp)
beq v0,zero,0x000b7cf4
_sw v1,0x38(s5)
lw v0,0x78(s5)
beq v0,zero,0x000b91d0
_nop
sw zero,0x98(sp)
bne s2,zero,0x000b7d10
_lw v0,0x54(sp)
lw v0,0x24(s4)
andi v0,v0,0x80
beq v0,zero,0x000b9218
_lw v0,0x54(sp)
beq v0,zero,0x000b9954
_nop
lh v0,0x32(v0)
sw v0,0x70(sp)
lw v1,0x2c(s5)
lw v0,0x70(sp)
sw v0,0x9c(sp)
addu v0,v1,v0
addiu v1,v1,0x1
addu v0,v0,s2
sw v1,0x64(sp)
addiu v0,v0,0x1
sw v0,0xa8(sp)
sw v0,0x2c(s5)
lw v0,0x40(sp)
beq v0,zero,0x000b9814
_lw v0,0x70(sp)
bne s2,zero,0x000b8308
_nop
lw t9,-0x7f98(gp)
li a3,0x10
lw a2,0x90(sp)
or a1,s8,zero
addiu t9,t9,0x5054
jalr t9
_or a0,s5,zero
li v0,0x1
lw gp,0x38(sp)
lw v1,0x24(s4)
sw zero,0x74(sp)
sw zero,0xa4(sp)
sw zero,0xb8(sp)
sw v0,0x68(sp)
sw zero,0xc4(sp)
andi v1,v1,0x80
beq v1,zero,0x000b995c
_lw v0,-0x7fb8(gp)
lw v0,0x70(sp)
blez v0,0x000b7e1c
_sw v0,0x9c(sp)
lw v0,0x70(sp)
lw t9,-0x7f98(gp)
lw v1,0x64(sp)
sll t0,v0,0x1
addiu t9,t9,0x7574
or v0,zero,zero
lw a0,0x54(sp)
or a1,s4,zero
lw a2,0x50(sp)
sw t0,0xd4(sp)
sw t9,0x4c(sp)
lw a3,0x4(a0)
lw a0,0x48(sp)
addu a3,a3,v0
addiu v0,v0,0x2
lh a3,0x0(a3)
sw v1,0x10(sp)
addiu v1,v1,0x1
sw v0,0xd0(sp)
jalr t9
_sw v1,0xc8(sp)
lw v0,0xd0(sp)
lw t0,0xd4(sp)
lw gp,0x38(sp)
lw t9,0x4c(sp)
bne t0,v0,0x000b7dc8
_lw v1,0xc8(sp)
lw v0,0x68(sp)
beq v0,zero,0x000b9404
_lw v0,0xa4(sp)
bne v0,zero,0x000b99a4
_lw v0,0x64(sp)
b 0x000b8330
_sw v0,0xa4(sp)
lw t9,-0x7fb8(gp)
addiu t9,t9,-0x42ac
jalr t9
_or a0,s5,zero
lw gp,0x38(sp)
beq v0,zero,0x000b7aa8
_sw v0,0x48(sp)
b 0x000b7624
_lw v0,0x0(s1)
lw a1,-0x7fcc(gp)
or a2,t5,zero
lw t9,-0x7f94(gp)
or a0,s5,zero
lw s7,0x70(sp)
addiu a1,a1,-0x6800
addiu t9,t9,-0x61d8
jalr t9
_lw s8,0x74(sp)
li v0,0x1
lw gp,0x38(sp)
b 0x000b7aa8
_sb v0,0x11(s5)
lw v0,0x28(s0)
sll v1,t3,0x4
lw a1,0x44(sp)
or a2,s2,zero
lw t9,0x4c(sp)
addu v0,v0,v1
sw t3,0x78(sp)
jalr t9
_lw a0,0x4(v0)
lw gp,0x38(sp)
b 0x000b7a54
_lw t3,0x78(sp)
sw zero,0xc0(sp)
sw zero,0xac(sp)
sw zero,0xb0(sp)
sw zero,0x78(sp)
b 0x000b7c58
_sw zero,0x60(sp)
lw v1,0x40(s4)
lw s2,0x8(s5)
lw s3,0x0(s5)
beq v1,zero,0x000b7f14
_sw v1,0x5c(sp)
lw v0,0x0(v1)
beq v0,s3,0x000b7f14
_or v0,v1,zero
lw v0,0x18(v0)
beq v0,zero,0x000b7f10
_nop
lw v1,0x0(v0)
bne s3,v1,0x000b7ef8
_nop
sw v0,0x5c(sp)
lh v1,0x2a(s4)
li a1,0x64
lw a2,0x28(s5)
or a0,s2,zero
lw v0,-0x7fb8(gp)
addiu a3,v1,0x2
lw v1,0x30(s7)
sw a2,0x40(sp)
addiu t9,v0,-0x47a8
sw zero,0x10(sp)
sw v1,0x48(sp)
addiu v1,a2,0x1
sw a3,0x54(sp)
sw v1,0x28(s5)
jalr t9
_sw t9,0x4c(sp)
lw a0,0x2c(s5)
lw a3,0x54(sp)
lw v1,0x0(s7)
lw gp,0x38(sp)
sw a0,0x60(sp)
sw v0,0x50(sp)
addu v0,a3,a0
addiu a0,a0,0x1
slti v1,v1,0x2
sw v0,0x2c(s5)
bne v1,zero,0x000b89d0
_sw a0,0x58(sp)
lw a1,0x8c(sp)
or a3,zero,zero
beq a1,zero,0x000b89b4
_or a2,zero,zero
lw t9,-0x7fa4(gp)
addiu t9,t9,-0x7698
jalr t9
_or a0,s3,zero
lw gp,0x38(sp)
or a2,v0,zero
lw v0,-0x7f94(gp)
lw a0,0x0(s5)
or a1,zero,zero
addiu t9,v0,0x59e4
jalr t9
_sw t9,0x60(sp)
lh a0,0x2a(s4)
or v1,v0,zero
blez a0,0x000b8080
_lw gp,0x38(sp)
li v0,0x1
sw s0,0x6c(sp)
or s0,v1,zero
sw v0,0x50(sp)
lw v0,0x44(sp)
sw v0,0x48(sp)
lw v0,-0x7fa0(gp)
addiu v0,v0,-0x5d30
sw v0,0x64(sp)
lw v0,-0x7fa4(gp)
addiu v0,v0,-0x7698
sw v0,0x68(sp)
lw v0,0x48(sp)
lw v0,0x0(v0)
bltz v0,0x000b8944
_sll v0,v0,0x4
addu v0,s1,v0
lw v0,0x4(v0)
beq v0,zero,0x000b8038
_lw t9,0x68(sp)
or a3,zero,zero
or a2,zero,zero
or a1,v0,zero
jalr t9
_or a0,s3,zero
lw a0,0x0(s5)
or a1,s0,zero
lw t9,0x60(sp)
jalr t9
_or a2,v0,zero
lw v1,0x50(sp)
or s0,v0,zero
lw a1,0x48(sp)
lh a0,0x2a(s4)
lw gp,0x38(sp)
addiu a1,a1,0x4
slt v0,v1,a0
addiu v1,v1,0x1
sw a1,0x48(sp)
bne v0,zero,0x000b8004
_sw v1,0x50(sp)
or v1,s0,zero
lw s0,0x6c(sp)
lw t9,-0x7fd8(gp)
or a2,zero,zero
lw a1,0x40(sp)
or a3,v1,zero
sw v1,0x48(sp)
or a0,s5,zero
addiu t9,t9,-0x3ed4
sw s8,0x14(sp)
jalr t9
_sw s7,0x10(sp)
lw v1,0x48(sp)
beq v1,zero,0x000b89a0
_lw gp,0x38(sp)
lw t9,-0x7f94(gp)
or a0,s3,zero
or a1,v1,zero
addiu t9,t9,0x3aa4
jalr t9
_or s3,zero,zero
lw gp,0x38(sp)
lw v1,0x0(s7)
li v0,0x1
beq v1,v0,0x000b898c
_lw t9,-0x7f94(gp)
lw a2,0x40(sp)
or a3,zero,zero
lw t9,0x4c(sp)
li a1,0x25
sw zero,0x10(sp)
jalr t9
_or a0,s2,zero
lw gp,0x38(sp)
sw v0,0x50(sp)
lw v0,0x54(sp)
blez v0,0x000b814c
_or v1,zero,zero
lw v0,0x58(sp)
or a3,v1,zero
lw a2,0x40(sp)
li a1,0x59
lw t9,0x4c(sp)
or a0,s2,zero
addu v0,v0,v1
addiu v1,v1,0x1
sw v0,0x10(sp)
jalr t9
_sw v1,0x48(sp)
lw v0,0x54(sp)
lw v1,0x48(sp)
bne v0,v1,0x000b8110
_lw gp,0x38(sp)
lw t9,-0x7fb4(gp)
or a1,s4,zero
addiu t9,t9,0x6b18
jalr t9
_or a0,s5,zero
or a2,zero,zero
lw v0,0x58(sp)
li a1,0xa
lw a3,0x54(sp)
or a0,s2,zero
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
li a3,-0xc
lw gp,0x38(sp)
or a1,v0,zero
lw a2,0x5c(sp)
lw t9,-0x7fb8(gp)
addiu t9,t9,-0x37ac
jalr t9
_or a0,s2,zero
li v0,0xb
lw v1,0x150(sp)
beq v1,v0,0x000b8980
_lw gp,0x38(sp)
lw v0,0x6c(s2)
blez v0,0x000b81d0
_li a0,0x14
lw v1,0x68(s2)
mul a1,v0,a0
addu v0,a1,v1
lw v1,0x150(sp)
sh v1,-0x12(v0)
lw v0,0x74(s5)
li v1,0x1
movz v0,s5,v0
sb v1,0x15(v0)
lw v0,0x90(sp)
bne v0,zero,0x000b896c
_lw t9,-0x7f94(gp)
lw s3,0x50(sp)
li a1,0x5
lw a2,0x40(sp)
or a0,s2,zero
lw t9,0x4c(sp)
addiu a3,s3,0x1
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
bgez s3,0x000b8220
_lw v0,0x6c(s2)
addiu v1,v0,-0x1
sw v1,0x50(sp)
lw v1,0x0(s2)
lbu v1,0x51(v1)
bne v1,zero,0x000b89a8
_lw a1,0x50(sp)
li a0,0x14
lw v1,0x68(s2)
mul a2,a1,a0
addu s5,a2,v1
lw a2,0x40(sp)
or a3,zero,zero
lw t9,0x4c(sp)
li a1,0x74
sw v0,0x8(s5)
or a0,s2,zero
jalr t9
_sw zero,0x10(sp)
b 0x000b7aa8
_lw gp,0x38(sp)
lw v0,0x2c(s4)
li a0,0xb
lhu v1,0x34(s0)
addiu v0,v0,0x1
addu v1,v1,v0
sw v1,0x2c(s4)
lw v1,0x150(sp)
bne v1,a0,0x000b79b4
_li v1,0x5
lbu a0,0x36(s0)
bne a0,v1,0x000b79b4
_li v1,0x1
b 0x000b79b4
_sw v1,0xe0(sp)
addiu a0,a0,0x2
lw v0,0x60(sp)
sw a0,0xac(sp)
lw a0,0x80(sp)
addu v0,v0,v1
bne a0,zero,0x000b7c3c
_sw v0,0x2c(s5)
lw a0,0x5c(sp)
bne a0,zero,0x000b7c3c
_lw a0,0x88(sp)
bne a0,zero,0x000b7c3c
_lw a0,0x60(sp)
b 0x000b7c48
_sw a0,0x78(sp)
lw t9,-0x7d60(gp)
jalr t9
_nop
lw v0,0x6c(sp)
li a3,0x2
sw zero,0x54(sp)
or t0,zero,zero
sw zero,0xb4(sp)
b 0x000b7504
_sw v0,0x50(sp)
b 0x000b74c8
_sw v0,0x54(sp)
sw zero,0x74(sp)
lw v0,0x74(s5)
lw v1,0x64(sp)
sw zero,0x68(sp)
movz v0,s5,v0
sw v1,0xa4(sp)
li v1,0x1
sw zero,0xc4(sp)
sw v1,0xb8(sp)
sb v1,0x14(v0)
lw v0,0x40(sp)
beq v0,zero,0x000b8fe0
_lw v0,0x90(sp)
sw v0,0x6c(sp)
beq s3,zero,0x000b8398
_sw zero,0xa0(sp)
lw v0,-0x7fb8(gp)
addiu v0,v0,-0x47a8
bne s2,zero,0x000b9174
_sw v0,0x4c(sp)
lw v0,0x8(s5)
beq v0,zero,0x000b8378
_lw t9,-0x7f98(gp)
or a0,s5,zero
lw a2,0x78(sp)
addiu t9,t9,0x7228
jalr t9
_lw a1,0x8c(sp)
lw a2,0x78(sp)
or a3,zero,zero
lw a0,0x48(sp)
li a1,0xf
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
lw v0,0xbc(sp)
beq v0,zero,0x000b8828
_lw v0,0x88(sp)
bne v0,zero,0x000b8840
_or v1,zero,zero
lw v0,0x150(sp)
or a3,zero,zero
lw a1,0x5c(sp)
or a0,s5,zero
sw v1,0x4c(sp)
or a2,s1,zero
sw v0,0x18(sp)
lw v0,-0x7f7c(gp)
sw s4,0x14(sp)
addiu t9,v0,-0x2fdc
li v0,0x3
sw t9,0x8c(sp)
bal 0x000bd024
_sw v0,0x10(sp)
lw v1,0x4c(sp)
lh a0,0x2a(s4)
lw gp,0x38(sp)
or v0,v0,v1
blez a0,0x000b8510
_sw v0,0x94(sp)
lw v0,-0x7fb8(gp)
or v1,zero,zero
sw s0,0xbc(sp)
or s0,s4,zero
sw zero,0x4c(sp)
or s4,s1,zero
sw v0,0xb4(sp)
or s1,v1,zero
lw v0,-0x7fb4(gp)
addiu v0,v0,0xf74
sw v0,0xa4(sp)
lw v0,-0x7f98(gp)
addiu v0,v0,0x7574
b 0x000b8474
_sw v0,0xa8(sp)
lw a2,0x50(sp)
or a1,s0,zero
lw a0,0x48(sp)
lw t9,0xa8(sp)
sw a3,0x10(sp)
jalr t9
_or a3,s1,zero
lw gp,0x38(sp)
lw v1,0x4c(sp)
addiu s1,s1,0x1
lh v0,0x2a(s0)
addiu v1,v1,0x14
slt v0,s1,v0
beq v0,zero,0x000b8504
_sw v1,0x4c(sp)
lw a0,0x24(s0)
andi a0,a0,0x20
beq a0,zero,0x000b8494
_seh v0,s1
lw t9,0xa4(sp)
or a1,v0,zero
jalr t9
_or a0,s0,zero
lw v1,0xac(sp)
li a0,-0x1
addu a3,v0,v1
lw v1,0x94(sp)
beq v1,a0,0x000b8438
_slti v0,s1,0x20
beq v0,zero,0x000b84c4
_li v0,0x1
sllv v0,v0,s1
and v0,v0,v1
bne v0,zero,0x000b843c
_lw a2,0x50(sp)
lw v0,0x4(s0)
lw v1,0x4c(sp)
addu v0,v0,v1
lhu v0,0x10(v0)
andi v0,v0,0x1
bne v0,zero,0x000b843c
_lw a2,0x50(sp)
lw v0,0xb4(sp)
or a2,zero,zero
lw a0,0x48(sp)
li a1,0x48
addiu t9,v0,-0x47a8
jalr t9
_sw zero,0x10(sp)
b 0x000b8458
_lw gp,0x38(sp)
or s1,s4,zero
or s4,s0,zero
lw s0,0xbc(sp)
bne s3,zero,0x000b8528
_lw v0,0x150(sp)
lw v0,0x54(sp)
beq v0,zero,0x000b9758
_lw t9,-0x7fb8(gp)
lw v0,0x150(sp)
li a3,0x1
lw a1,0x5c(sp)
or a0,s5,zero
lw t9,0x8c(sp)
or a2,s1,zero
sw v0,0x18(sp)
li v0,0x1
sw s4,0x14(sp)
jalr t9
_sw v0,0x10(sp)
lh a0,0x2a(s4)
lw gp,0x38(sp)
blez a0,0x000b866c
_sw v0,0x8c(sp)
lw v0,-0x7f98(gp)
or t0,zero,zero
lw s3,0xb0(sp)
sw s0,0xa8(sp)
or s0,t0,zero
sw v0,0xa4(sp)
lw v0,-0x7f98(gp)
addiu v0,v0,0x7574
sw v0,0x94(sp)
lw v0,-0x7fb8(gp)
addiu v0,v0,-0x47a8
sw v0,0x4c(sp)
or v0,s1,zero
or s1,s4,zero
or s4,s3,zero
b 0x000b85c4
_or s3,v0,zero
andi a1,a1,0x20
beq a1,zero,0x000b85b4
_nop
addiu s4,s4,-0x1
addiu s0,s0,0x1
slt v0,s0,a0
beq v0,zero,0x000b8660
_addiu s4,s4,0x1
lh v0,0x28(s1)
beq s0,v0,0x000b8638
_sll v0,s0,0x2
lw a1,0x4(s1)
addu a2,v0,s0
sll a2,a2,0x2
addu a1,a1,a2
lhu a1,0x10(a1)
andi a2,a1,0x60
bne a2,zero,0x000b85a4
_lw v1,0x44(sp)
addu v0,v1,v0
lw v0,0x0(v0)
bltz v0,0x000b88a4
_nop
beq s2,zero,0x000b8870
_lw a3,0x70(sp)
li a1,0x59
lw v1,0x58(sp)
lw a2,0x74(sp)
lw t9,0x4c(sp)
movn a3,a0,v1
lw a0,0x48(sp)
sw s4,0x10(sp)
jalr t9
_addu a3,v0,a3
lw gp,0x38(sp)
b 0x000b85b4
_lh a0,0x2a(s1)
lw a0,0x48(sp)
or a2,zero,zero
lw t9,0x4c(sp)
li a1,0x48
sw zero,0x10(sp)
jalr t9
_or a3,s4,zero
lw gp,0x38(sp)
b 0x000b85b4
_lh a0,0x2a(s1)
lw s0,0xa8(sp)
or s4,s1,zero
or s1,s3,zero
lw v0,0x24(s4)
andi v0,v0,0x60
bne v0,zero,0x000b9650
_lw t9,-0x7fd8(gp)
lw v0,0xdc(sp)
andi v0,v0,0x1
bne v0,zero,0x000b94bc
_lw s3,-0x7f7c(gp)
lw v0,0x58(sp)
beq v0,zero,0x000b8da4
_addiu s3,s3,-0x2d3c
lw v0,0x98(sp)
bne v0,zero,0x000b8d4c
_lw t9,-0x7fb8(gp)
lw v0,0x6c(sp)
li v1,0x2
lw a1,0x5c(sp)
li a2,0x7f
sw v1,0x10(sp)
or a0,s5,zero
sw v0,0x20(sp)
or a3,s1,zero
lw v0,0x150(sp)
or t9,s3,zero
sw v1,0x4c(sp)
sw s4,0x14(sp)
sw v0,0x1c(sp)
lw v0,0x60(sp)
jalr t9
_sw v0,0x18(sp)
li v0,0x1
lw a0,0x68(sp)
lw gp,0x38(sp)
beq a0,v0,0x000b881c
_lw v1,0x4c(sp)
lw v0,0x68(sp)
beq v0,v1,0x000b919c
_lw v0,0x54(sp)
beq v0,zero,0x000b87f4
_nop
lw s2,-0x7fb8(gp)
lw s3,0x48(sp)
lw a1,0x6c(sp)
addiu s2,s2,-0x4a64
or t9,s2,zero
jalr t9
_or a0,s3,zero
li a1,0x5
lw gp,0x38(sp)
or a0,s3,zero
lw a3,0xa0(sp)
lw a2,0x74(sp)
lw t9,-0x7fb8(gp)
addiu t9,t9,-0x47a8
jalr t9
_sw zero,0x10(sp)
lw a1,0x90(sp)
or t9,s2,zero
jalr t9
_lw a0,0x48(sp)
lbu v0,0x12(s5)
bne v0,zero,0x000b8774
_lw gp,0x38(sp)
lw v0,0x78(s5)
beq v0,zero,0x000b8c38
_lw v0,0x40(sp)
lw v0,0x98(sp)
beq v0,zero,0x000b7aa8
_lw t9,-0x7fb8(gp)
li a3,0x1
lw s2,0x48(sp)
li a1,0x50
or a2,v0,zero
sw zero,0x10(sp)
addiu t9,t9,-0x47a8
jalr t9
_or a0,s2,zero
li a1,0x1
lw gp,0x38(sp)
lw t9,-0x7fb4(gp)
addiu t9,t9,0x7e44
jalr t9
_or a0,s2,zero
lw v0,0x0(s2)
lbu v0,0x51(v0)
bne v0,zero,0x000b7aa8
_lw gp,0x38(sp)
lw a3,-0x7fcc(gp)
or a2,zero,zero
lw t9,-0x7fa0(gp)
or a1,zero,zero
lw a0,0x48(sp)
addiu a3,a3,-0x67ec
addiu t9,t9,-0x1e28
jalr t9
_sw zero,0x10(sp)
b 0x000b7aa8
_lw gp,0x38(sp)
bne s2,zero,0x000b870c
_lw t9,-0x7fb8(gp)
or a2,zero,zero
lw a3,0x6c(sp)
li a1,0xb
lw a0,0x48(sp)
addiu t9,t9,-0x47a8
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
lw s2,-0x7fb8(gp)
b 0x000b874c
_addiu s2,s2,-0x4a64
bne v0,zero,0x000b8840
_lw v0,0x5c(sp)
beq v0,zero,0x000b8c6c
_lw v0,-0x7f7c(gp)
b 0x000b83ac
_or v1,zero,zero
lw v0,0x0(s5)
lw v0,0x24(v0)
andi v0,v0,0x4000
beq v0,zero,0x000b8838
_lw t9,-0x7f8c(gp)
or a1,s4,zero
addiu t9,t9,0x7450
jalr t9
_or a0,s5,zero
lw gp,0x38(sp)
b 0x000b83ac
_or v1,v0,zero
sll v0,v0,0x4
lw a2,0x8(s5)
addu v0,s3,v0
beq a2,zero,0x000b85b4
_lw a1,0x4(v0)
lw v0,0xa4(sp)
or a0,s5,zero
addiu t9,v0,0x7228
jalr t9
_or a2,s4,zero
lw gp,0x38(sp)
b 0x000b85b4
_lh a0,0x2a(s1)
lw v0,0xdc(sp)
andi v0,v0,0x1
beq v0,zero,0x000b88d0
_slti v0,s0,0x20
beq v0,zero,0x000b88d4
_lw a0,0x48(sp)
lw v0,0x8c(sp)
srlv v0,v0,s0
andi v0,v0,0x1
beq v0,zero,0x000b8640
_or a2,zero,zero
lw a0,0x48(sp)
or a3,s0,zero
lw a2,0x50(sp)
or a1,s1,zero
lw t9,0x94(sp)
jalr t9
_sw s4,0x10(sp)
lw gp,0x38(sp)
lh a0,0x2a(s1)
b 0x000b85b4
_sw zero,0xb8(sp)
b 0x000b7bcc
_sltu a1,zero,v0
or a2,a3,zero
lw t9,-0x7f94(gp)
or a0,s5,zero
lw s7,0x70(sp)
addiu a1,a1,-0x6824
addiu t9,t9,-0x61d8
jalr t9
_lw s8,0x74(sp)
b 0x000b7aa8
_lw gp,0x38(sp)
b 0x000b7950
_sw v0,0xe0(sp)
bne s2,zero,0x000b7cc4
_lw t9,-0x7f94(gp)
b 0x000b7cac
_addiu a0,sp,0xec
lw t9,0x64(sp)
or a3,zero,zero
or a2,zero,zero
li a1,0x4b
jalr t9
_or a0,s5,zero
beq v0,zero,0x000b8038
_lw v1,0x50(sp)
b 0x000b8038
_sh v1,0x20(v0)
addiu t9,t9,0x4c88
jalr t9
_or a0,s3,zero
b 0x000b7aa8
_lw gp,0x38(sp)
li v0,0x2
b 0x000b81b0
_sw v0,0x150(sp)
addiu t9,t9,0x4c88
jalr t9
_or a0,s3,zero
b 0x000b80e4
_lw a2,0x40(sp)
b 0x000b80d0
_or s3,zero,zero
lw s5,-0x7fe4(gp)
b 0x000b8240
_addiu s5,s5,0x5860
lw t9,-0x7fa0(gp)
li a1,0x4b
addiu t9,t9,-0x5d30
jalr t9
_or a0,s5,zero
b 0x000b7fa8
_lw gp,0x38(sp)
addiu v1,v0,0x2
lw t9,-0x7f88(gp)
sw zero,0x18(sp)
addiu v0,v0,0x1
sw v1,0x2c(s5)
or a3,zero,zero
sw v1,0x68(sp)
li v1,0x4
addiu t9,t9,-0x1ca0
sw zero,0x10(sp)
sw v1,0x14(sp)
or a2,s8,zero
or a1,s7,zero
sw v0,0x64(sp)
bal 0x0009e360
_or a0,s5,zero
lw gp,0x38(sp)
beq v0,zero,0x000b7aa8
_or s3,v0,zero
lw v0,0x60(sp)
or t0,zero,zero
lw t2,0x44(sp)
lh a0,0x2a(s4)
addiu v0,v0,0x3
sw s0,0x74(sp)
sw s3,0x78(sp)
or s0,t2,zero
sw v0,0x6c(sp)
or s3,s5,zero
lw v0,-0x7f98(gp)
or s5,s2,zero
or s2,t0,zero
addiu v0,v0,0x7228
sw v0,0x70(sp)
slt v0,s2,a0
beq v0,zero,0x000b8aec
_lw v1,0x6c(sp)
lw v0,0x0(s0)
bltz v0,0x000b8aa0
_addu a2,v1,s2
lw a1,0x8(s3)
beq a1,zero,0x000b8a94
_sll v0,v0,0x4
lw t9,0x70(sp)
or a0,s3,zero
addu v0,s1,v0
jalr t9
_lw a1,0x4(v0)
lh a0,0x2a(s4)
addiu s2,s2,0x1
b 0x000b8a58
_addiu s0,s0,0x4
lw t9,0x4c(sp)
li a1,0xa6
sw a2,0x10(sp)
or a0,s5,zero
lw a2,0x48(sp)
jalr t9
_or a3,s2,zero
lw v0,0x6c(s5)
blez v0,0x000b8b3c
_lw a0,0x68(s5)
li v1,0x14
addiu s2,s2,0x1
mul a1,v0,v1
li v1,0x1
addiu s0,s0,0x4
addu v0,a1,a0
lh a0,0x2a(s4)
b 0x000b8a58
_sh v1,-0x12(v0)
lw v0,0x24(s4)
or s2,s5,zero
lw s0,0x74(sp)
or s5,s3,zero
andi v0,v0,0x80
beq v0,zero,0x000b8c90
_lw s3,0x78(sp)
lw v0,0x8(s4)
li a1,-0x40
b 0x000b8b2c
_li a0,0x80
lbu v1,0x37(v0)
and v1,v1,a1
beq v1,a0,0x000b8b4c
_lw a2,0x48(sp)
lw v0,0x14(v0)
bne v0,zero,0x000b8b18
_nop
lw v0,0x4(zero)
teq zero,zero
lh a0,0x2a(s4)
addiu s2,s2,0x1
b 0x000b8a58
_addiu s0,s0,0x4
lw v0,0x4(v0)
li a1,0xa6
or a0,s2,zero
lw t9,0x4c(sp)
lh v1,0x0(v0)
lw v0,0x58(sp)
or a3,v1,zero
sw v1,0x6c(sp)
jalr t9
_sw v0,0x10(sp)
li a1,0x4e
lw v0,0x60(sp)
or a0,s2,zero
lw v1,0x6c(sp)
lw t9,0x4c(sp)
addiu a2,v0,0x3
sw zero,0x10(sp)
addiu a3,v0,0x2
jalr t9
_addu a2,a2,v1
lw gp,0x38(sp)
addiu v0,s3,0x14
lwl a0,0x0(v0)
lwl v1,0x4(v0)
lwr a0,0x3(v0)
lwr v1,0x7(v0)
sw a0,0x10c(sp)
sw v1,0x110(sp)
lbu v1,0x2e(s3)
bne v1,zero,0x000b8ce0
_lw a3,0x54(sp)
lw v0,0x74(s5)
li v1,0x1
li a1,0x5b
lw a2,0x58(sp)
or a0,s2,zero
movz v0,s5,v0
lw t9,0x4c(sp)
sb v1,0x14(v0)
lw v0,0x64(sp)
jalr t9
_sw v0,0x10(sp)
li a1,0x78
lw a3,0x68(sp)
or a0,s2,zero
lw a2,0x40(sp)
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
li a1,0x79
lw v1,0x68(sp)
or a0,s2,zero
lw a3,0x64(sp)
lw a2,0x40(sp)
lw t9,0x4c(sp)
jalr t9
_sw v1,0x10(sp)
b 0x000b80d0
_lw gp,0x38(sp)
bne v0,zero,0x000b8778
_lw v0,0x98(sp)
lw v0,0x70(s5)
beq v0,zero,0x000b8774
_lw t9,-0x7f8c(gp)
addiu t9,t9,0x78e0
jalr t9
_or a0,s5,zero
b 0x000b8774
_lw gp,0x38(sp)
lw v0,0x84(sp)
b 0x000b7b68
_sw v0,0xc8(sp)
addiu v0,v0,-0x2fdc
b 0x000b8524
_sw v0,0x8c(sp)
bne a2,zero,0x000b7c28
_nop
bne s3,zero,0x000b7c3c
_sw zero,0xac(sp)
b 0x000b82d0
_lw a0,0x60(sp)
lw a2,0x48(sp)
li a1,0x7f
lw a3,0x58(sp)
or a0,s2,zero
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
lw v0,0x60(sp)
lw a1,0x8c(sp)
lw gp,0x38(sp)
beq a1,zero,0x000b8d28
_addiu a2,v0,0x2
lw v0,0x8(s5)
beq v0,zero,0x000b8ba0
_lw t9,-0x7f98(gp)
addiu t9,t9,0x7228
jalr t9
_or a0,s5,zero
b 0x000b8ba0
_lw gp,0x38(sp)
lw t9,-0x7fb4(gp)
addiu a1,s2,0x68
lw a0,0x0(s2)
lw a2,0x50(sp)
addiu t9,t9,0x29e8
jalr t9
_sw v1,0x60(sp)
or a3,zero,zero
lw a2,0x48(sp)
li a1,0x74
lw t9,0x4c(sp)
or a0,s2,zero
jalr t9
_sw zero,0x10(sp)
lw v1,0x60(sp)
lw gp,0x38(sp)
b 0x000b814c
_sw v1,0x90(sp)
or a3,a2,zero
lw t9,0x4c(sp)
lw a2,0x48(sp)
li a1,0x7f
sw zero,0x10(sp)
jalr t9
_or a0,s2,zero
b 0x000b8ba0
_lw gp,0x38(sp)
li a3,0x1
lw a0,0x48(sp)
li a1,0x52
sw zero,0x10(sp)
addiu t9,t9,-0x47a8
jalr t9
_or a2,v0,zero
b 0x000b86a8
_lw v0,0x6c(sp)
lw v0,0x24(s4)
or s0,s1,zero
or s1,s3,zero
andi v0,v0,0x60
beq v0,zero,0x000b8da4
_lw s3,0x4c(sp)
lw t9,-0x7fd8(gp)
or a2,s4,zero
lw a1,0xb0(sp)
addiu t9,t9,-0x7554
jalr t9
_or a0,s5,zero
lw gp,0x38(sp)
lw v1,0x44(sp)
or a1,s4,zero
lw v0,0x150(sp)
or a0,s5,zero
lw t9,-0x7fd8(gp)
sw v1,0x2c(sp)
addiu v1,sp,0xe0
andi v0,v0,0xff
sw zero,0x30(sp)
sw v1,0x28(sp)
addiu t9,t9,-0x2f14
lw v1,0x6c(sp)
lw a3,0x50(sp)
lw a2,0x84(sp)
sw v1,0x24(sp)
lw v1,0x60(sp)
sw v0,0x20(sp)
lw v0,0x80(sp)
sw v1,0x18(sp)
lw v1,0x78(sp)
sw v0,0x1c(sp)
sw v1,0x14(sp)
lw v1,0x7c(sp)
jalr t9
_sw v1,0x10(sp)
lw v0,0xe0(sp)
bne v0,zero,0x000b8e20
_lw gp,0x38(sp)
lw v0,0x80(sp)
beq v0,zero,0x000b8e5c
_lw v0,0x88(sp)
lw v0,0x54(sp)
beq v0,zero,0x000b966c
_lw v0,0x9c(sp)
li a1,0x1d
lw t9,-0x7fb8(gp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
lw a0,0x48(sp)
addiu t9,t9,-0x4660
sw v0,0x14(sp)
lw v0,0x64(sp)
jalr t9
_sw v0,0x10(sp)
lw gp,0x38(sp)
lw v0,0x88(sp)
bne v0,zero,0x000b8f20
_lw v0,0x84(sp)
or a1,s4,zero
lw t9,-0x7fd8(gp)
or a0,s5,zero
lw a3,0x7c(sp)
lw a2,0x50(sp)
sw v0,0x10(sp)
li v0,-0x1
addiu t9,t9,-0x46bc
jalr t9
_sw v0,0x14(sp)
lw v0,0xb8(sp)
bne v0,zero,0x000b8f88
_lw gp,0x38(sp)
lw v0,0x80(sp)
beq v0,zero,0x000b8ed4
_lw v1,0x68(sp)
lw t9,-0x7fb8(gp)
or a3,zero,zero
lw a2,0x50(sp)
li a1,0x7a
lw a0,0x48(sp)
addiu t9,t9,-0x47a8
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
lw v0,0x88(sp)
bne v0,zero,0x000b9698
_lw v1,0x68(sp)
li v0,0x2
beq v1,v0,0x000b8fcc
_lw a3,0x7c(sp)
li v0,0x4
lw a2,0x50(sp)
sw zero,0x20(sp)
sw zero,0x1c(sp)
lw t9,-0x7f8c(gp)
or a1,s4,zero
sw v0,0x18(sp)
or a0,s5,zero
lw v0,0x84(sp)
addiu t9,t9,0x645c
sw v0,0x14(sp)
lw v0,0x78(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b8698
_lw gp,0x38(sp)
lw v0,0x80(sp)
or a3,zero,zero
lw t9,-0x7fd8(gp)
or a1,s4,zero
lw a2,0x60(sp)
or a0,s5,zero
sw v0,0x14(sp)
lw v0,0x44(sp)
addiu t9,t9,-0x3a44
jalr t9
_sw v0,0x10(sp)
li v0,-0x1
lw gp,0x38(sp)
or a1,s4,zero
lw a3,0x7c(sp)
or a0,s5,zero
lw a2,0x50(sp)
sw v0,0x14(sp)
lw t9,-0x7fd8(gp)
lw v0,0x84(sp)
addiu t9,t9,-0x46bc
jalr t9
_sw v0,0x10(sp)
lw v0,0xb8(sp)
beq v0,zero,0x000b8fac
_lw gp,0x38(sp)
lw t9,-0x7fb8(gp)
or a3,zero,zero
lw a2,0x50(sp)
li a1,0x87
lw a0,0x48(sp)
addiu t9,t9,-0x47a8
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
lw v0,0x88(sp)
slti v0,v0,0x2
beq v0,zero,0x000b8ea4
_lw v0,0x80(sp)
bne v0,zero,0x000b8ea8
_lw t9,-0x7fb8(gp)
b 0x000b8ecc
_lw v0,0x88(sp)
li v0,0x6
lw a2,0x50(sp)
sw zero,0x20(sp)
b 0x000b8ef0
_sw zero,0x1c(sp)
lw v0,-0x7fb8(gp)
addiu v0,v0,-0x47a8
bne s2,zero,0x000b9014
_sw v0,0x4c(sp)
lw v1,0x68(sp)
li v0,0x2
beq v1,v0,0x000b9994
_lw v0,0x58(sp)
lw t9,-0x7f94(gp)
addiu t9,t9,0x4c88
jalr t9
_lw a0,0xc4(sp)
lw gp,0x38(sp)
lw v0,0x58(sp)
beq v0,zero,0x000b977c
_lw v0,0x68(sp)
beq v0,zero,0x000b911c
_lw v0,0x54(sp)
lw v1,0x68(sp)
li v0,0x1
beq v1,v0,0x000b9af0
_lw v0,0x90(sp)
lw v0,0x38(s5)
addiu v0,v0,-0x1
sw v0,0x6c(sp)
sw v0,0x38(s5)
lw a2,0x64(sp)
li a1,0x32
lw v0,0x54(sp)
lw v1,0x60(sp)
lw a3,0x90(sp)
lw a0,0x48(sp)
movz a2,v1,v0
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
b 0x000b8340
_lw gp,0x38(sp)
lw v0,0x38(s4)
bne v0,zero,0x000b911c
_lw v0,0x54(sp)
or v1,zero,zero
lw v0,0xa0(sp)
or a3,zero,zero
lw t9,-0x7f8c(gp)
li a2,0x61
sw v1,0xa8(sp)
or a1,s4,zero
sw v0,0x14(sp)
or a0,s5,zero
sw zero,0x1c(sp)
addiu t9,t9,0x7a78
sw zero,0x18(sp)
lw v0,0x6c(sp)
jalr t9
_sw v0,0x10(sp)
lw gp,0x38(sp)
lw v1,0xa8(sp)
beq v1,zero,0x000b9110
_lw v0,0x68(sp)
lw v0,0x48(sp)
lw a0,0x6c(v0)
addiu v0,a0,-0x1
beq v0,v1,0x000b9c28
_lw a3,0x48(sp)
slti a2,v1,0x0
movz v0,v1,a2
lw a1,0x0(a3)
lbu v1,0x51(a1)
bne v1,zero,0x000b9c1c
_li a1,0x14
lw v1,0x68(a3)
mul a2,v0,a1
addu v0,a2,v1
sw a0,0x8(v0)
lw v0,0x68(sp)
bne v0,zero,0x000b97d4
_lw v0,0x10c(sp)
lw v0,0x54(sp)
beq v0,zero,0x000b9a68
_li a1,0x25
lw v0,0x38(s5)
lw a3,0x90(sp)
lw a2,0x74(sp)
addiu v0,v0,-0x1
lw a0,0x48(sp)
lw t9,0x4c(sp)
sw zero,0x10(sp)
sw v0,0x6c(sp)
jalr t9
_sw v0,0x38(s5)
lw v0,0x48(sp)
lw gp,0x38(sp)
lw v0,0x6c(v0)
beq s2,zero,0x000b9a0c
_sw v0,0xa0(sp)
lw v0,0x58(sp)
beq v0,zero,0x000b9b5c
_or v1,zero,zero
beq s3,zero,0x000b839c
_lw v0,0xbc(sp)
lw v0,0x78(sp)
li a1,0x59
lw a3,0x94(sp)
lw a2,0x74(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b837c
_lw a2,0x78(sp)
lw s2,-0x7fb8(gp)
lw a0,0x48(sp)
addiu s2,s2,-0x4a64
or t9,s2,zero
jalr t9
_lw a1,0x6c(sp)
lw gp,0x38(sp)
lw t9,-0x7f94(gp)
addiu t9,t9,0x4c88
jalr t9
_lw a0,0xc4(sp)
b 0x000b8750
_lw a1,0x90(sp)
lbu v0,0x12(s5)
bne v0,zero,0x000b7cf4
_lw v0,0x40(sp)
bne v0,zero,0x000b7cf4
_or a2,zero,zero
lw v1,0x2c(s5)
lw v0,-0x7fb8(gp)
li a1,0x45
lw a0,0x48(sp)
addiu v1,v1,0x1
sw zero,0x10(sp)
addiu t9,v0,-0x47a8
sw v1,0x98(sp)
or a3,v1,zero
jalr t9
_sw v1,0x2c(s5)
b 0x000b7cf8
_lw gp,0x38(sp)
lw v0,-0x7fb8(gp)
or a2,zero,zero
lw v1,0x60(sp)
li a1,0x48
lw a3,0xc0(sp)
addiu t9,v0,-0x47a8
lw a0,0x48(sp)
sw v1,0x10(sp)
jalr t9
_sw t9,0x4c(sp)
lw v0,0x40(sp)
lw gp,0x38(sp)
sw zero,0xa8(sp)
bne v0,zero,0x000b9358
_sw zero,0x64(sp)
sw zero,0xa4(sp)
sw zero,0x74(sp)
sw zero,0x70(sp)
lbu v0,0x12(s5)
bne v0,zero,0x000b927c
_li v0,0x1004
lw v0,0x5c(sp)
beq v0,zero,0x000b99e4
_lw v0,0x88(sp)
li v0,0x1004
lw t9,-0x7f88(gp)
or a3,zero,zero
lw v1,0x7c(sp)
or a2,s8,zero
sw v0,0x14(sp)
or a1,s7,zero
addiu t9,t9,-0x1ca0
sw zero,0x10(sp)
sw v1,0x18(sp)
bal 0x0009e360
_or a0,s5,zero
lw gp,0x38(sp)
or a2,v0,zero
beq v0,zero,0x000b7aa8
_sw v0,0xc4(sp)
addiu v0,v0,0x14
li a1,0x1
lwl a0,0x0(v0)
lwl v1,0x4(v0)
lwr a0,0x3(v0)
lwr v1,0x7(v0)
sw a0,0x10c(sp)
sw v1,0x110(sp)
lw v0,0x30(a2)
lbu v1,0x2e(a2)
srl v0,v0,0x1f
sw v1,0x68(sp)
beq v1,a1,0x000b93fc
_sw v0,0xb8(sp)
lw v0,0x74(s5)
li a2,0x2
movz v0,s5,v0
sb a1,0x14(v0)
lw v1,0x24(s4)
lw v0,0x68(sp)
beq v0,a2,0x000b93b8
_andi a0,v1,0x80
bne a0,zero,0x000b7da8
_lw v0,0x70(sp)
lw a3,0x60(sp)
li a1,0x7f
lw a2,0x50(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
lw v0,0x68(sp)
beq v0,zero,0x000b937c
_lw gp,0x38(sp)
lw v0,0x64(sp)
sw zero,0x9c(sp)
sw v0,0xa4(sp)
lw v0,0xa8(sp)
b 0x000b8ff0
_sw v0,0x64(sp)
b 0x000b7d5c
_sw zero,0x70(sp)
lw a3,0x60(sp)
li a1,0x7f
lw a2,0x50(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
lw v0,0x2c(s5)
li a1,0x93
lw v1,0xc8(sp)
lw a3,0x60(sp)
addiu v0,v0,0x1
lw a2,0xc0(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
sw v0,0x2c(s5)
sw v0,0x0(v1)
jalr t9
_sw zero,0x10(sp)
lw gp,0x38(sp)
b 0x000b9340
_sw zero,0x68(sp)
lw v0,0x110(sp)
bltz v0,0x000b7d98
_lw a1,0x50(sp)
beq a1,v0,0x000b7d98
_lw a1,0x6c(sp)
subu v0,v0,a1
lw a1,0xa0(sp)
addu v0,a1,v0
lbu v0,0x0(v0)
beq v0,zero,0x000b7d98
_nop
beq a0,zero,0x000b9360
_lw v0,0x70(sp)
blez v0,0x000b9410
_sw v0,0x9c(sp)
b 0x000b7db0
_sw zero,0x68(sp)
b 0x000b7d98
_lw v1,0x24(s4)
lw v0,-0x7fb8(gp)
addiu v0,v0,-0x47a8
sw v0,0x4c(sp)
lw t9,-0x7fb4(gp)
or a0,s0,zero
addiu t9,t9,0x6954
jalr t9
_lw a1,0x54(sp)
li a1,0x5b
lw v1,0xa8(sp)
lw a2,0x64(sp)
lw a3,0x70(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
sw v1,0x10(sp)
jalr t9
_sw v0,0x68(sp)
lw gp,0x38(sp)
or a1,v0,zero
lw v1,0x68(sp)
lw a3,0x70(sp)
lw a0,0x48(sp)
lw t9,-0x7fb8(gp)
addiu t9,t9,-0x37ac
jalr t9
_or a2,v1,zero
li a1,0x82
lw gp,0x38(sp)
lw v0,0x64(sp)
lw t0,0x70(sp)
lw a3,0xa8(sp)
lw t9,-0x7fb8(gp)
lw a2,0x74(sp)
lw a0,0x48(sp)
addiu t9,t9,-0x4660
sw v0,0x10(sp)
jalr t9
_sw t0,0x14(sp)
lw v0,0x64(sp)
lw v1,0xa8(sp)
lw gp,0x38(sp)
sw v0,0xa4(sp)
sw v1,0x64(sp)
sw zero,0x9c(sp)
b 0x000b8330
_sw zero,0x68(sp)
lw t9,-0x7fb8(gp)
or a1,s4,zero
lw a2,0xb0(sp)
addiu t9,t9,-0x336c
jalr t9
_lw a0,0x48(sp)
li a2,0x7f
lw v0,0x6c(sp)
or a3,s1,zero
lw gp,0x38(sp)
or a0,s5,zero
lw a1,0x5c(sp)
sw v0,0x20(sp)
lw v0,0x150(sp)
lw s3,-0x7f7c(gp)
sw s4,0x14(sp)
sw v0,0x1c(sp)
lw v0,0x60(sp)
addiu s3,s3,-0x2d3c
or t9,s3,zero
sw v0,0x18(sp)
li v0,0x1
bal 0x000bd2c4
_sw v0,0x10(sp)
lw v0,0x58(sp)
bne v0,zero,0x000b8698
_lw gp,0x38(sp)
lw v0,0x54(sp)
beq v0,zero,0x000b9624
_lw v0,0x9c(sp)
li a1,0x1d
lw t9,-0x7fb8(gp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
lw a0,0x48(sp)
addiu t9,t9,-0x4660
sw v0,0x14(sp)
lw v0,0x64(sp)
jalr t9
_sw v0,0x10(sp)
lw gp,0x38(sp)
lw t9,-0x7f98(gp)
li t0,0x14
lh a0,0x2a(s4)
lw v0,0xb0(sp)
sw s3,0x4c(sp)
or s3,s1,zero
or s1,s0,zero
lw s0,0xcc(sp)
addiu t9,t9,0x7574
slt v1,s0,a0
beq v1,zero,0x000b8d70
_mul a1,s0,t0
lw v1,0x4(s4)
addu v1,a1,v1
lhu v1,0x10(v1)
andi a1,v1,0x60
beq a1,zero,0x000b95c0
_andi v1,v1,0x20
beq v1,zero,0x000b95b4
_nop
addiu v0,v0,-0x1
addiu s0,s0,0x1
b 0x000b9584
_addiu v0,v0,0x1
lw a1,0x44(sp)
sll v1,s0,0x2
addu v1,a1,v1
lw v1,0x0(v1)
bgez v1,0x000b95b4
_nop
lh v1,0x28(s4)
beq s0,v1,0x000b95b4
_or a3,s0,zero
lw a0,0x48(sp)
lw a2,0x50(sp)
or a1,s4,zero
sw t0,0x8c(sp)
addiu s0,s0,0x1
sw v0,0x10(sp)
sw v0,0x70(sp)
jalr t9
_sw t9,0x58(sp)
lw v0,0x70(sp)
lw gp,0x38(sp)
lh a0,0x2a(s4)
lw t0,0x8c(sp)
addiu v0,v0,0x1
b 0x000b9584
_lw t9,0x58(sp)
lw t9,-0x7fb8(gp)
li a1,0x20
lw v0,0x60(sp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
addiu t9,t9,-0x47a8
lw a0,0x48(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b9560
_lw gp,0x38(sp)
or a2,s4,zero
lw a1,0xb0(sp)
addiu t9,t9,-0x7554
jalr t9
_or a0,s5,zero
b 0x000b867c
_lw gp,0x38(sp)
lw t9,-0x7fb8(gp)
li a1,0x20
lw v0,0x60(sp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
addiu t9,t9,-0x47a8
lw a0,0x48(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b8e58
_lw gp,0x38(sp)
lw v0,0x80(sp)
or a2,zero,zero
lw t9,-0x7fd8(gp)
or a1,s4,zero
lw a3,0x78(sp)
or a0,s5,zero
sw v0,0x14(sp)
lw v0,0x44(sp)
addiu t9,t9,-0x3a44
jalr t9
_sw v0,0x10(sp)
li v0,0x2
lw v1,0x68(sp)
beq v1,v0,0x000b9af8
_lw gp,0x38(sp)
lw a3,0x7c(sp)
li v0,0x4
lw a2,0x50(sp)
sw zero,0x20(sp)
sw zero,0x1c(sp)
lw t9,-0x7f8c(gp)
or a1,s4,zero
sw v0,0x18(sp)
or a0,s5,zero
lw v0,0x84(sp)
addiu t9,t9,0x645c
sw v0,0x14(sp)
lw v0,0x78(sp)
jalr t9
_sw v0,0x10(sp)
lw v0,0x0(s5)
lw v0,0x24(v0)
andi v0,v0,0x4000
beq v0,zero,0x000b8698
_lw gp,0x38(sp)
lw v0,0x80(sp)
or a2,s1,zero
lw t9,-0x7fd8(gp)
or a1,s4,zero
lw a3,0x60(sp)
or a0,s5,zero
sw v0,0x14(sp)
lw v0,0x44(sp)
addiu t9,t9,-0x15ac
jalr t9
_sw v0,0x10(sp)
b 0x000b8698
_lw gp,0x38(sp)
li a1,0x4d
lw a3,0x78(sp)
lw a2,0x60(sp)
lw a0,0x48(sp)
addiu t9,t9,-0x47a8
jalr t9
_sw zero,0x10(sp)
b 0x000b8528
_lw v0,0x150(sp)
beq v0,zero,0x000b9078
_lw v0,0x10c(sp)
bltz v0,0x000b979c
_lw v1,0x6c(sp)
subu v0,v0,v1
lw v1,0xa0(sp)
addu v0,v1,v0
sb zero,0x0(v0)
lw v0,0x110(sp)
bltz v0,0x000b97b8
_lw v1,0x6c(sp)
subu v0,v0,v1
lw v1,0xa0(sp)
addu v0,v1,v0
sb zero,0x0(v0)
lw v1,0x68(sp)
li v0,0x2
beq v1,v0,0x000b9ba0
_lw v0,0x110(sp)
lw v0,0x38(s4)
beq v0,zero,0x000b9084
_lw v0,0x10c(sp)
lw a2,0x50(sp)
beq v0,a2,0x000b9028
_lw v0,0x110(sp)
beq v0,a2,0x000b9028
_lw v0,0x9c(sp)
li a1,0x1d
lw t9,-0x7fb8(gp)
lw a3,0x90(sp)
lw a0,0x48(sp)
sw v0,0x14(sp)
addiu t9,t9,-0x4660
lw v0,0x64(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b902c
_lw v1,0x68(sp)
addu v1,s2,v0
lw v0,0x58(sp)
beq v0,zero,0x000b9828
_or v0,zero,zero
lh v0,0x2a(s4)
lw a0,0x28(s5)
addu v1,v1,v0
addiu v0,a0,0x1
sw a0,0x74(sp)
sw v0,0x28(s5)
lw v0,0x54(sp)
beq v0,zero,0x000b9924
_lw a3,0x64(sp)
or a2,zero,zero
lw v0,-0x7fb8(gp)
li a1,0x48
sw v1,0x68(sp)
lw v1,0x70(sp)
addiu t9,v0,-0x47a8
addu a0,a3,v1
sw t9,0x4c(sp)
addiu a0,a0,-0x1
sw a0,0x10(sp)
jalr t9
_lw a0,0x48(sp)
li a1,0x64
lw v1,0x68(sp)
lw a0,0x48(sp)
lw a2,0x74(sp)
lw t9,0x4c(sp)
or a3,v1,zero
jalr t9
_sw zero,0x10(sp)
or a0,s5,zero
lw gp,0x38(sp)
lw a1,0x54(sp)
lw t9,-0x7fa0(gp)
addiu t9,t9,-0x1400
jalr t9
_sw v0,0xa4(sp)
beq v0,zero,0x000b98e0
_lw gp,0x38(sp)
lw t9,-0x7fb4(gp)
li a2,-0x9
lw v1,0x68(sp)
or a1,v0,zero
lw a0,0x48(sp)
addiu t9,t9,0x280c
jalr t9
_sh v1,0x8(v0)
lw gp,0x38(sp)
beq s2,zero,0x000b9260
_lw v1,0x74(sp)
or a3,s1,zero
lw v0,0x50(sp)
lw a0,0x58(sp)
lw t9,-0x7fd8(gp)
or a1,v1,zero
lw a2,0x54(sp)
movn v0,v1,a0
or a0,s5,zero
addiu t9,t9,-0x3ed4
sw s8,0x14(sp)
sw s7,0x10(sp)
jalr t9
_sw v0,0x50(sp)
b 0x000b830c
_lw gp,0x38(sp)
lw v0,-0x7fb8(gp)
li a1,0x64
lw a2,0x74(sp)
or a3,v1,zero
lw a0,0x48(sp)
addiu t9,v0,-0x47a8
sw zero,0x10(sp)
jalr t9
_sw t9,0x4c(sp)
lw gp,0x38(sp)
b 0x000b98e0
_sw v0,0xa4(sp)
b 0x000b7d20
_sw zero,0x70(sp)
li a1,0x7f
lw a3,0x60(sp)
lw a2,0x50(sp)
lw a0,0x48(sp)
addiu t9,v0,-0x47a8
jalr t9
_sw zero,0x10(sp)
lw v0,0x64(sp)
lw gp,0x38(sp)
sw zero,0x9c(sp)
sw v0,0xa4(sp)
lw v0,0xa8(sp)
b 0x000b8330
_sw v0,0x64(sp)
bne v0,zero,0x000b9038
_lw v0,0x10c(sp)
b 0x000b9784
_nop
lw v0,0x48(sp)
lw t9,-0x7fb4(gp)
lw a2,0xa4(sp)
addiu a1,v0,0x68
addiu t9,t9,0x29e8
jalr t9
_lw a0,0x0(v0)
lw v0,0x64(sp)
lw gp,0x38(sp)
b 0x000b8330
_sw v0,0xa4(sp)
li v0,-0x1
sw zero,0xbc(sp)
sw zero,0x8c(sp)
b 0x000b780c
_sw v0,0x94(sp)
bne v0,zero,0x000b927c
_li v0,0x1004
lw v0,0x80(sp)
bne v0,zero,0x000b9278
_lw v0,0xe0(sp)
li a0,0x1004
li v1,0x100c
movn v1,a0,v0
b 0x000b927c
_or v0,v1,zero
lw a3,0x64(sp)
li a1,0x7e
lw a2,0x74(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
li a1,0x1d
lw gp,0x38(sp)
lw v0,0x64(sp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
lw t9,-0x7fb8(gp)
lw a0,0x48(sp)
sw zero,0x14(sp)
addiu t9,t9,-0x4660
jalr t9
_sw v0,0x10(sp)
lw gp,0x38(sp)
bne s3,zero,0x000b8358
_lw v0,0xbc(sp)
b 0x000b839c
_nop
beq s2,zero,0x000b9b10
_lw a3,0x90(sp)
lw v0,0x38(s5)
lw a2,0x74(sp)
addiu v0,v0,-0x1
lw a0,0x48(sp)
lw t9,0x4c(sp)
sw zero,0x10(sp)
sw v0,0x6c(sp)
jalr t9
_sw v0,0x38(s5)
lw v0,0x48(sp)
lw gp,0x38(sp)
lw v0,0x6c(v0)
sw v0,0xa0(sp)
lw v0,0x58(sp)
bne v0,zero,0x000b916c
_lw a3,0x60(sp)
li a1,0x7f
lw a2,0x74(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw zero,0x10(sp)
li a1,0x20
lw v0,0x60(sp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b916c
_lw gp,0x38(sp)
b 0x000b9048
_sw v0,0x6c(sp)
lw a3,0x7c(sp)
li v0,0x6
lw a2,0x50(sp)
sw zero,0x20(sp)
b 0x000b96e8
_sw zero,0x1c(sp)
lw v0,0x60(sp)
li a1,0x2a
lw a2,0xc0(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
jalr t9
_sw v0,0x10(sp)
li a1,0x20
or a3,v0,zero
lw a2,0x50(sp)
lw a0,0x48(sp)
lw t9,0x4c(sp)
sw v0,0x6c(sp)
lw v0,0x60(sp)
jalr t9
_sw v0,0x10(sp)
lw gp,0x38(sp)
b 0x000b9a58
_sw zero,0xa0(sp)
lw v0,0x70(sp)
slt v0,v1,v0
beq v0,zero,0x000b9be8
_lw v0,0xa4(sp)
li a1,0x59
lw a2,0x74(sp)
or a3,v1,zero
lw a0,0x48(sp)
addu v0,v0,v1
lw t9,0x4c(sp)
sw v1,0x8c(sp)
jalr t9
_sw v0,0x10(sp)
lw v1,0x8c(sp)
lw gp,0x38(sp)
b 0x000b9b5c
_addiu v1,v1,0x1
lw v1,0xb4(sp)
nor v0,zero,v0
srl v0,v0,0x1f
subu v0,v1,v0
blez v0,0x000b97c8
_lw a0,0x48(sp)
or a3,zero,zero
lw t9,0x4c(sp)
or a2,zero,zero
li a1,0x11
jalr t9
_sw zero,0x10(sp)
lw a0,0x38(s4)
or v1,v0,zero
bne a0,zero,0x000b90c8
_lw gp,0x38(sp)
b 0x000b908c
_lw v0,0xa0(sp)
lw v0,0x70(sp)
li a1,0x1d
lw t9,-0x7fb8(gp)
lw a3,0x6c(sp)
lw a2,0x50(sp)
lw a0,0x48(sp)
addiu t9,t9,-0x4660
sw v0,0x14(sp)
lw v0,0xa4(sp)
jalr t9
_sw v0,0x10(sp)
b 0x000b916c
_lw gp,0x38(sp)
lw v0,-0x7fe4(gp)
b 0x000b9108
_addiu v0,v0,0x5860
lw v0,0x48(sp)
b 0x000b910c
_sw v1,0x6c(v0)
(translation_unit "void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)\n\n{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}\n\n" (function_definition "void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)\n\n{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" identifier (parameter_list "(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "short sVar3;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "short *psVar28;" (sized_type_specifier "short" short) (pointer_declarator "*psVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "code *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "code *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "code *local_f4;" type_identifier (pointer_declarator "*local_f4" * identifier) ;) (declaration "code *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "code *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "uint *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "code *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "code *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "code *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "code *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "code *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "code *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "pcVar34 = (code *)param_1[9];" (assignment_expression "pcVar34 = (code *)param_1[9]" identifier = (cast_expression "(code *)param_1[9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar32 = (code *)*param_1;" (assignment_expression "pcVar32 = (code *)*param_1" identifier = (cast_expression "(code *)*param_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" if (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0))" ( (binary_expression "(pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" ( (comma_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0" (assignment_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51]" identifier = (cast_expression "(code *)(uint)(byte)pcVar32[0x51]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)pcVar32[0x51]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar32[0x51]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar32[0x51]" identifier [ number_literal ]))))) , (binary_expression "unaff_s3 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" { (expression_statement "unaff_s4 = (uint *)FUN_000b6ddc();" (assignment_expression "unaff_s4 = (uint *)FUN_000b6ddc()" identifier = (cast_expression "(uint *)FUN_000b6ddc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b6ddc()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(unaff_s4 == (uint *)0x0)" ( (binary_expression "unaff_s4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (if_statement "if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" if (parenthesized_expression "(unaff_s4[0x12] == 0)" ( (binary_expression "unaff_s4[0x12] == 0" (subscript_expression "unaff_s4[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_e0 = (code *)0xffff8000;\n    }" { (expression_statement "local_e0 = (code *)0xffff8000;" (assignment_expression "local_e0 = (code *)0xffff8000" identifier = (cast_expression "(code *)0xffff8000" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" else (compound_statement "{\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" { (expression_statement "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);" (assignment_expression "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x1608)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1608)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1608)" ( (binary_expression "PTR_LAB_000f52ec + 0x1608" identifier + number_literal) )))) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) ;) }))) (expression_statement "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);" (assignment_expression "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x20b0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x20b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x20b0)" ( (binary_expression "PTR_LAB_000f52ec + 0x20b0" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0x7f,param_3,&local_64)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&local_64" & identifier) ))))) ;) (expression_statement "local_e8 = (code *)unaff_s4[3];" (assignment_expression "local_e8 = (code *)unaff_s4[3]" identifier = (cast_expression "(code *)unaff_s4[3]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[3]" identifier [ number_literal ]))) ;) (if_statement "if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }" if (parenthesized_expression "(1 < *param_2)" ( (binary_expression "1 < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) )) (compound_statement "{\n      pcVar34 = (code *)*param_3;\n    }" { (expression_statement "pcVar34 = (code *)*param_3;" (assignment_expression "pcVar34 = (code *)*param_3" identifier = (cast_expression "(code *)*param_3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) })) (expression_statement "iVar31 = FUN_000a6004(param_1,unaff_s4);" (assignment_expression "iVar31 = FUN_000a6004(param_1,unaff_s4)" identifier = (call_expression "FUN_000a6004(param_1,unaff_s4)" identifier (argument_list "(param_1,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar31 != 0) goto LAB_000b7424;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);" (assignment_expression "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x45b0)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x45b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x45b0)" ( (binary_expression "PTR_LAB_000f530c + -0x45b0" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_64)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_b0 != (code *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(local_b0 != (code *)0x0)" ( (binary_expression "local_b0 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_d4 = (code *)param_1[10];" (assignment_expression "local_d4 = (code *)param_1[10]" identifier = (cast_expression "(code *)param_1[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = local_d4 + 1;" (assignment_expression "local_c4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = (uint)local_c4;" (assignment_expression "param_1[10] = (uint)local_c4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" identifier = identifier) ;) (if_statement "if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }" { (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" { (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" else (compound_statement "{\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" { (if_statement "if (uVar12 == 0) goto LAB_000b82e4;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b82e4;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(uVar12 + 0x37);" (assignment_expression "bVar1 = *(byte *)(uVar12 + 0x37)" identifier = (pointer_expression "*(byte *)(uVar12 + 0x37)" * (cast_expression "(byte *)(uVar12 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x37)" ( (binary_expression "uVar12 + 0x37" identifier + number_literal) ))))) ;) (expression_statement "local_ec = uVar12;" (assignment_expression "local_ec = uVar12" identifier = identifier) ;) (while_statement "while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" while (parenthesized_expression "(((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)))" ( (parenthesized_expression "((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))" ( (binary_expression "(bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" ( (comma_expression "local_ec = *(uint *)(local_ec + 0x14), local_ec != 0" (assignment_expression "local_ec = *(uint *)(local_ec + 0x14)" identifier = (pointer_expression "*(uint *)(local_ec + 0x14)" * (cast_expression "(uint *)(local_ec + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x14)" ( (binary_expression "local_ec + 0x14" identifier + number_literal) ))))) , (binary_expression "local_ec != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" { (expression_statement "bVar1 = *(byte *)(local_ec + 0x37);" (assignment_expression "bVar1 = *(byte *)(local_ec + 0x37)" identifier = (pointer_expression "*(byte *)(local_ec + 0x37)" * (cast_expression "(byte *)(local_ec + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x37)" ( (binary_expression "local_ec + 0x37" identifier + number_literal) ))))) ;) })) }))) (expression_statement "pcVar23 = local_c4;" (assignment_expression "pcVar23 = local_c4" identifier = identifier) ;) (do_statement "do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);" do (compound_statement "{\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    }" { (expression_statement "puVar17 = (uint *)(uVar12 + 0x14);" (assignment_expression "puVar17 = (uint *)(uVar12 + 0x14)" identifier = (cast_expression "(uint *)(uVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) )))) ;) (if_statement "if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }" if (parenthesized_expression "(uVar12 == local_ec)" ( (binary_expression "uVar12 == local_ec" identifier == identifier) )) (compound_statement "{\n        local_f0 = pcVar23;\n      }" { (expression_statement "local_f0 = pcVar23;" (assignment_expression "local_f0 = pcVar23" identifier = identifier) ;) })) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "local_8c = pcVar23 + ~(uint)local_d4;" (assignment_expression "local_8c = pcVar23 + ~(uint)local_d4" identifier = (binary_expression "pcVar23 + ~(uint)local_d4" identifier + (unary_expression "~(uint)local_d4" ~ (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "uVar12 = *puVar17;" (assignment_expression "uVar12 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) }) while (parenthesized_expression "(*puVar17 != 0)" ( (binary_expression "*puVar17 != 0" (pointer_expression "*puVar17" * identifier) != number_literal) )) ;) (expression_statement "param_1[10] = (uint)pcVar23;" (assignment_expression "param_1[10] = (uint)pcVar23" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) (do_statement "do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  }" { (while_statement "while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" { (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x35c8)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x35c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x35c8)" ( (binary_expression "PTR_LAB_000f530c + 0x35c8" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_2)" ( identifier , identifier ))) ;) (if_statement "if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" if (parenthesized_expression "(param_3 != (uint *)0x0)" ( (binary_expression "param_3 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_3)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3940)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3940)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3940)" ( (binary_expression "PTR_LAB_000f530c + 0x3940" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_4)" ( identifier , identifier ))) ;) })) (if_statement "if (local_2c == *(int *)puVar8) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar8)" ( (binary_expression "local_2c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000b82e4:\n      local_ec = 0;" statement_identifier : (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;)) (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" identifier = identifier) ;) (labeled_statement "LAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" statement_identifier : (if_statement "if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" { (expression_statement "local_f0 = *(code **)(local_100 + 0x1c);" (assignment_expression "local_f0 = *(code **)(local_100 + 0x1c)" identifier = (pointer_expression "*(code **)(local_100 + 0x1c)" * (cast_expression "(code **)(local_100 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_100 + 0x1c)" ( (binary_expression "local_100 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = *(code **)(local_100 + 0x20);" (assignment_expression "local_c4 = *(code **)(local_100 + 0x20)" identifier = (pointer_expression "*(code **)(local_100 + 0x20)" * (cast_expression "(code **)(local_100 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_100 + 0x20)" ( (binary_expression "local_100 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "param_1[10] = (uint)local_d4;" (assignment_expression "param_1[10] = (uint)local_d4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "puVar19 = PTR_LAB_000f52ec;" (assignment_expression "puVar19 = PTR_LAB_000f52ec" identifier = identifier) ;) (expression_statement "param_2[0xc] = (int)local_f0;" (assignment_expression "param_2[0xc] = (int)local_f0" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);" (assignment_expression "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" identifier = (cast_expression "(int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar19 + 0x6c00))(pcVar32)" (parenthesized_expression "(*(code *)(puVar19 + 0x6c00))" ( (pointer_expression "*(code *)(puVar19 + 0x6c00)" * (cast_expression "(code *)(puVar19 + 0x6c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x6c00)" ( (binary_expression "puVar19 + 0x6c00" identifier + number_literal) )))) )) (argument_list "(pcVar32)" ( identifier ))))) ;) (if_statement "if (piVar9 != (int *)0x0) break;" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b7424:\n      puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" if (parenthesized_expression "(local_58 != (uint *)0x0)" ( (binary_expression "local_58 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" { (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "pcVar23 = local_8c + 1;" (assignment_expression "pcVar23 = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));" (assignment_expression "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" identifier = (cast_expression "(uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "piVar9 + *(short *)((int)unaff_s4 + 0x2a)" identifier + (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;) (expression_statement "puVar10 = puVar17 + (int)pcVar23;" (assignment_expression "puVar10 = puVar17 + (int)pcVar23" identifier = (binary_expression "puVar17 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,1,pcVar23)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;" (assignment_expression "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0" (pointer_expression "*(code *)((int)puVar10 + (int)pcVar23)" * (cast_expression "(code *)((int)puVar10 + (int)pcVar23)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + (int)pcVar23)" ( (binary_expression "(int)puVar10 + (int)pcVar23" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) ;) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" identifier = (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" if (parenthesized_expression "(0 < sVar3)" ( (binary_expression "0 < sVar3" number_literal < identifier) )) (compound_statement "{\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" { (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (do_statement "do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);" do (compound_statement "{\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      }" { (expression_statement "*piVar11 = -1;" (assignment_expression "*piVar11 = -1" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 + sVar3 != piVar11)" ( (binary_expression "piVar9 + sVar3 != piVar11" (binary_expression "piVar9 + sVar3" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_f8 = (code *)param_1[2];" (assignment_expression "local_f8 = (code *)param_1[2]" identifier = (cast_expression "(code *)param_1[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = local_100;" (assignment_expression "local_4c = local_100" identifier = identifier) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0x200;" (assignment_expression "local_3c = 0x200" identifier = number_literal) ;) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (if_statement "if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" if (parenthesized_expression "(local_f8 == (code *)0x0)" ( (binary_expression "local_f8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }" { (expression_statement "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);" (assignment_expression "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x42ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x42ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x42ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x42ac" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" if (parenthesized_expression "(local_f8 != (code *)0x0)" ( (binary_expression "local_f8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" { (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto LAB_000b7624;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" else (compound_statement "{\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" { (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (labeled_statement "LAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;" statement_identifier : (expression_statement "puVar7 = PTR_LAB_000f530c;" (assignment_expression "puVar7 = PTR_LAB_000f530c" identifier = identifier) ;)) (expression_statement "puVar6 = PTR_DAT_000f52d4;" (assignment_expression "puVar6 = PTR_DAT_000f52d4" identifier = identifier) ;) (expression_statement "puVar19 = PTR_LAB_000f52cc;" (assignment_expression "puVar19 = PTR_LAB_000f52cc" identifier = identifier) ;) (expression_statement "local_d8 = unaff_s3;" (assignment_expression "local_d8 = unaff_s3" identifier = identifier) ;) (if_statement "if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" if (parenthesized_expression "((int)uVar12 < 1)" ( (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" else (compound_statement "{\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" { (expression_statement "puVar20 = param_3 + 1;" (assignment_expression "puVar20 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x514)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x514)" ( (binary_expression "PTR_LAB_000f52ec + 0x514" identifier + number_literal) )))) ;) (expression_statement "pcVar36 = (code *)0x0;" (assignment_expression "pcVar36 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);" do (compound_statement "{\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        }" { (expression_statement "unaff_s3 = pcVar36;" (assignment_expression "unaff_s3 = pcVar36" identifier = identifier) ;) (if_statement "if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;" if (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))" ( (binary_expression "(pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" ( (comma_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0" (assignment_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" identifier = (call_expression "(*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" (parenthesized_expression "(*(code *)(puVar7 + -0x562c))" ( (pointer_expression "*(code *)(puVar7 + -0x562c)" * (cast_expression "(code *)(puVar7 + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x562c)" ( (binary_expression "puVar7 + -0x562c" identifier + number_literal) )))) )) (argument_list "(&local_54,*puVar20)" ( (pointer_expression "&local_54" & identifier) , (pointer_expression "*puVar20" * identifier) )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pbVar29 = (byte *)puVar20[1];" (assignment_expression "pbVar29 = (byte *)puVar20[1]" identifier = (cast_expression "(byte *)puVar20[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" { (expression_statement "puVar30 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar30 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);" do (compound_statement "{\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            }" { (expression_statement "pbVar27 = (byte *)*puVar30;" (assignment_expression "pbVar27 = (byte *)*puVar30" identifier = (cast_expression "(byte *)*puVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "uVar22 = (uint)*pbVar29;" (assignment_expression "uVar22 = (uint)*pbVar29" identifier = (binary_expression "(uint)*pbVar29" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (uint)*pbVar27;" (assignment_expression "uVar12 = (uint)*pbVar27" identifier = (binary_expression "(uint)*pbVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar24 = pbVar27;" (assignment_expression "pbVar24 = pbVar27" identifier = identifier) ;) (expression_statement "pbVar26 = pbVar29;" (assignment_expression "pbVar26 = pbVar29" identifier = identifier) ;) (if_statement "if (uVar12 == uVar22) goto LAB_000b76e8;" if (parenthesized_expression "(uVar12 == uVar22)" ( (binary_expression "uVar12 == uVar22" identifier == identifier) )) (goto_statement "goto LAB_000b76e8;" goto statement_identifier ;)) (while_statement "while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" while (parenthesized_expression "(puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac])" ( (binary_expression "puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]" (subscript_expression "puVar6[uVar12 + 0x25ac]" identifier [ (binary_expression "uVar12 + 0x25ac" identifier + number_literal) ]) == (subscript_expression "puVar6[uVar22 + 0x25ac]" identifier [ (binary_expression "uVar22 + 0x25ac" identifier + number_literal) ])) )) (compound_statement "{\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" { (while_statement "while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" { (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)pbVar26[1];" (assignment_expression "uVar22 = (uint)pbVar26[1]" identifier = (cast_expression "(uint)pbVar26[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar26[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = (uint)*pbVar24;" (assignment_expression "uVar12 = (uint)*pbVar24" identifier = (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (uVar12 != uVar22) break;" if (parenthesized_expression "(uVar12 != uVar22)" ( (binary_expression "uVar12 != uVar22" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" statement_identifier : (if_statement "if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" { (if_statement "if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" if (parenthesized_expression "(*(short *)(unaff_s4 + 10) == iVar35)" ( (binary_expression "*(short *)(unaff_s4 + 10) == iVar35" (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }" { (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" identifier = (cast_expression "(code *)*puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) }) (else_clause "else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" else (compound_statement "{\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" { (if_statement "if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" if (parenthesized_expression "((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0))" ( (binary_expression "(local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)" (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) && (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 1) != 0)" ( (binary_expression "(*(ushort *)(puVar30 + 4) & 1) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 1)" ( (binary_expression "*(ushort *)(puVar30 + 4) & 1" (pointer_expression "*(ushort *)(puVar30 + 4)" * (cast_expression "(ushort *)(puVar30 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 4)" ( (binary_expression "puVar30 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" { (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7e5c;" if (parenthesized_expression "(iVar31 <= iVar35)" ( (binary_expression "iVar31 <= iVar35" identifier <= identifier) )) (goto_statement "goto LAB_000b7e5c;" goto statement_identifier ;)) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_84 = 1;" (assignment_expression "local_84 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" if (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 0x60) != 0)" ( (binary_expression "(*(ushort *)(puVar30 + 4) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 0x60)" ( (binary_expression "*(ushort *)(puVar30 + 4) & 0x60" (pointer_expression "*(ushort *)(puVar30 + 4)" * (cast_expression "(ushort *)(puVar30 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 4)" ( (binary_expression "puVar30 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" ( identifier , (binary_expression "PTR_DAT_000f52d4 + -0x6824" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) })) }))) (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7748;" if (parenthesized_expression "(iVar31 <= iVar35)" ( (binary_expression "iVar31 <= iVar35" identifier <= identifier) )) (goto_statement "goto LAB_000b7748;" goto statement_identifier ;)) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) }))) })) })) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 5;" (assignment_expression "puVar30 = puVar30 + 5" identifier = (binary_expression "puVar30 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != iVar31)" ( (binary_expression "iVar35 != iVar31" identifier != identifier) )) ;) })) (labeled_statement "LAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" statement_identifier : (if_statement "if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" if (parenthesized_expression "((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0))" ( (binary_expression "(local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" ( (comma_expression "iVar31 = (*pcVar13)(pbVar29), iVar31 == 0" (assignment_expression "iVar31 = (*pcVar13)(pbVar29)" identifier = (call_expression "(*pcVar13)(pbVar29)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(pbVar29)" ( identifier )))) , (binary_expression "iVar31 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" { (labeled_statement "LAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" ( identifier , (binary_expression "PTR_DAT_000f52d4 + -0x6800" identifier + number_literal) , identifier ))) ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) }))) (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" identifier = (cast_expression "(code *)*puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "iVar35 = -1;" (assignment_expression "iVar35 = -1" identifier = number_literal) ;) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27 = puVar19 + 0x7028;" (assignment_expression "pbVar27 = puVar19 + 0x7028" identifier = (binary_expression "puVar19 + 0x7028" identifier + number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) (labeled_statement "LAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" statement_identifier : (expression_statement "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" (assignment_expression "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x5ce4)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x5ce4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x5ce4)" ( (binary_expression "PTR_LAB_000f530c + -0x5ce4" identifier + number_literal) )))) )) (argument_list "(param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" ( identifier , number_literal , identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" * (cast_expression "(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" ( (binary_expression "*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10" (pointer_expression "*(int *)(pcVar32 + 0x10)" * (cast_expression "(int *)(pcVar32 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x10)" ( (binary_expression "pcVar32 + 0x10" identifier + number_literal) )))) + (binary_expression "(int)local_e0 * 0x10" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) )))) ;)) (if_statement "if (iVar31 == 1) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar31 == 1)" ( (binary_expression "iVar31 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (if_statement "if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }" if (parenthesized_expression "(iVar31 == 2)" ( (binary_expression "iVar31 == 2" identifier == number_literal) )) (compound_statement "{\n            piVar9[iVar35] = -1;\n          }" { (expression_statement "piVar9[iVar35] = -1;" (assignment_expression "piVar9[iVar35] = -1" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "puVar20 = puVar20 + 4;" (assignment_expression "puVar20 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) (expression_statement "pcVar36 = unaff_s3 + 1;" (assignment_expression "pcVar36 = unaff_s3 + 1" identifier = (binary_expression "unaff_s3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)(unaff_s3 + 1) < (int)*param_3)" ( (binary_expression "(int)(unaff_s3 + 1) < (int)*param_3" (cast_expression "(int)(unaff_s3 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s3 + 1)" ( (binary_expression "unaff_s3 + 1" identifier + number_literal) ))) < (cast_expression "(int)*param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_3" * identifier))) )) ;) }))) (expression_statement "uVar12 = (uint)(local_d8 + local_84) & 0xff;" (assignment_expression "uVar12 = (uint)(local_d8 + local_84) & 0xff" identifier = (binary_expression "(uint)(local_d8 + local_84) & 0xff" (call_expression "(uint)(local_d8 + local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8 + local_84)" ( (binary_expression "local_d8 + local_84" identifier + identifier) ))) & number_literal)) ;) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" { (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (do_statement "do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);" do (compound_statement "{\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        }" { (if_statement "if (iVar31 < 1) break;" if (parenthesized_expression "(iVar31 < 1)" ( (binary_expression "iVar31 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (do_statement "do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);" do (compound_statement "{\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          }" { (if_statement "if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" if (parenthesized_expression "((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0))" ( (binary_expression "(*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" (parenthesized_expression "(*piVar11 < 0)" ( (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" * identifier) < number_literal) )) && (parenthesized_expression "(iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" ( (comma_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (assignment_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14" identifier = (binary_expression "unaff_s4[1] + iVar35 * 0x14" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (binary_expression "iVar35 * 0x14" identifier * number_literal))) , (binary_expression "(*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x10) & 0x60)" ( (binary_expression "*(ushort *)(iVar14 + 0x10) & 0x60" (pointer_expression "*(ushort *)(iVar14 + 0x10)" * (cast_expression "(ushort *)(iVar14 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" { (expression_statement "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);" (assignment_expression "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" ( (pointer_expression "*(undefined4 *)(iVar14 + 4)" * (cast_expression "(undefined4 *)(iVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (expression_statement "*piVar11 = 99999;" (assignment_expression "*piVar11 = 99999" (pointer_expression "*piVar11" * identifier) = number_literal) ;) })) })) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 < iVar31)" ( (binary_expression "iVar35 < iVar31" identifier < identifier) )) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) })) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = *param_1;" (assignment_expression "uVar25 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1208)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1208)" ( (binary_expression "PTR_LAB_000f52ec + 0x1208" identifier + number_literal) )))) ;) (expression_statement "param_2[0x10] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x10] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) = (unary_expression "-(uint)(uVar22 != 0)" - (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) ))))) ;) (expression_statement "param_2[0x11] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x11] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) = (unary_expression "-(uint)(uVar22 != 0)" - (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) ))))) ;) (expression_statement "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);" (assignment_expression "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" identifier = (call_expression "(*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(uVar25,unaff_s4,piVar9,uVar12)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (param_5 == 5) {\n        local_60 = 1;\n      }" if (parenthesized_expression "(param_5 == 5)" ( (binary_expression "param_5 == 5" identifier == number_literal) )) (compound_statement "{\n        local_60 = 1;\n      }" { (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" identifier = number_literal) ;) })) (expression_statement "uVar22 = unaff_s4[2];" (assignment_expression "uVar22 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (expression_statement "local_78 = puVar17;" (assignment_expression "local_78 = puVar17" identifier = identifier) ;) (if_statement "if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = puVar17;" (assignment_expression "puVar20 = puVar17" identifier = identifier) ;) (do_statement "do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);" do (compound_statement "{\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        }" { (if_statement "if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" if (parenthesized_expression "((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))))" ( (binary_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" (parenthesized_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec))" ( (binary_expression "((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)" (parenthesized_expression "((uVar12 == 0) && (iVar31 < 2))" ( (binary_expression "(uVar12 == 0) && (iVar31 < 2)" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar31 < 2)" ( (binary_expression "iVar31 < 2" identifier < number_literal) ))) )) && (parenthesized_expression "(uVar22 != local_ec)" ( (binary_expression "uVar22 != local_ec" identifier != identifier) ))) )) && (parenthesized_expression "((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" ( (parenthesized_expression "(*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))" ( (binary_expression "*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" (binary_expression "*(int *)(uVar22 + 0x24) == 0" (pointer_expression "*(int *)(uVar22 + 0x24)" * (cast_expression "(int *)(uVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x24)" ( (binary_expression "uVar22 + 0x24" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "(iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" ( (comma_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0" (assignment_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(int *)(uVar22 + 0x24),piVar9,local_d8)" ( (pointer_expression "*(int *)(uVar22 + 0x24)" * (cast_expression "(int *)(uVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x24)" ( (binary_expression "uVar22 + 0x24" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar14 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (if_statement "if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" if (parenthesized_expression "(*(short *)(uVar22 + 0x32) != 0)" ( (binary_expression "*(short *)(uVar22 + 0x32) != 0" (pointer_expression "*(short *)(uVar22 + 0x32)" * (cast_expression "(short *)(uVar22 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x32)" ( (binary_expression "uVar22 + 0x32" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" { (do_statement "do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));" do (compound_statement "{\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              }" { (expression_statement "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);" (assignment_expression "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" identifier = (cast_expression "(int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" * (cast_expression "(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (binary_expression "*(int *)(uVar22 + 4) + iVar14 * 2" (pointer_expression "*(int *)(uVar22 + 4)" * (cast_expression "(int *)(uVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 4)" ( (binary_expression "uVar22 + 4" identifier + number_literal) )))) + (binary_expression "iVar14 * 2" identifier * number_literal)) )))))) ;) (if_statement "if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" if (parenthesized_expression "(iVar15 < 0)" ( (binary_expression "iVar15 < 0" identifier < number_literal) )) (compound_statement "{\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }" { (expression_statement "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);" (assignment_expression "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" ( (pointer_expression "*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" * (cast_expression "(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" ( (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4" (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10" (pointer_expression "*(int *)(uVar22 + 0x28)" * (cast_expression "(int *)(uVar22 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x28)" ( (binary_expression "uVar22 + 0x28" identifier + number_literal) )))) + (binary_expression "iVar14 * 0x10" identifier * number_literal)) + number_literal) )))) , identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" else (compound_statement "{\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" { (expression_statement "uVar25 = (uint)~piVar9[iVar15] >> 0x1f;" (assignment_expression "uVar25 = (uint)~piVar9[iVar15] >> 0x1f" identifier = (binary_expression "(uint)~piVar9[iVar15] >> 0x1f" (cast_expression "(uint)~piVar9[iVar15]" ( (type_descriptor "uint" type_identifier) ) (unary_expression "~piVar9[iVar15]" ~ (subscript_expression "piVar9[iVar15]" identifier [ identifier ]))) >> number_literal)) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" if (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" { (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" * (cast_expression "(ushort *)(uVar22 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x34)" ( (binary_expression "uVar22 + 0x34" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }" if (parenthesized_expression "((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05'))" ( (binary_expression "(param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')" (parenthesized_expression "(param_5 == 0xb)" ( (binary_expression "param_5 == 0xb" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(uVar22 + 0x36) == '\x05')" ( (binary_expression "*(char *)(uVar22 + 0x36) == '\x05'" (pointer_expression "*(char *)(uVar22 + 0x36)" * (cast_expression "(char *)(uVar22 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x36)" ( (binary_expression "uVar22 + 0x36" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    local_60 = 1;\n                  }" { (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_000b79b4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32))" ( (binary_expression "iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32)" identifier < (binary_expression "(int)(uint)*(ushort *)(uVar22 + 0x32)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(uVar22 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x32)" ( (binary_expression "uVar22 + 0x32" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_000b79c4:\n            uVar25 = 0;" statement_identifier : (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;)) (expression_statement "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1)" * (cast_expression "(undefined1 *)((int)puVar10 + iVar35 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + iVar35 + 1)" ( (binary_expression "(int)puVar10 + iVar35 + 1" (binary_expression "(int)puVar10 + iVar35" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" else (compound_statement "{\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" { (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" * (cast_expression "(ushort *)(uVar22 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x34)" ( (binary_expression "uVar22 + 0x34" identifier + number_literal) )))) + identifier)) ;) (labeled_statement "LAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;" statement_identifier : (if_statement "if (uVar25 == 0) goto LAB_000b79c4;" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b79c4;" goto statement_identifier ;))) }))) (expression_statement "uVar22 = *(uint *)(uVar22 + 0x14);" (assignment_expression "uVar22 = *(uint *)(uVar22 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar22 + 0x14)" * (cast_expression "(uint *)(uVar22 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x14)" ( (binary_expression "uVar22 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "*puVar20 = uVar25;" (assignment_expression "*puVar20 = uVar25" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) ;) (expression_statement "local_78 = puVar17 + iVar35;" (assignment_expression "local_78 = puVar17 + iVar35" identifier = (binary_expression "puVar17 + iVar35" identifier + identifier)) ;) })) (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" * identifier) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" { (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,1,pcVar23)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" { (expression_statement "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;" (assignment_expression "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (pointer_expression "*(ushort *)(local_f8 + 0x96)" * (cast_expression "(ushort *)(local_f8 + 0x96)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x96)" ( (binary_expression "local_f8 + 0x96" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff" (pointer_expression "*(ushort *)(local_f8 + 0x96)" * (cast_expression "(ushort *)(local_f8 + 0x96)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x96)" ( (binary_expression "local_f8 + 0x96" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + -0x5698)" * (cast_expression "(code *)(PTR_LAB_000f5308 + -0x5698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + -0x5698)" ( (binary_expression "PTR_LAB_000f5308 + -0x5698" identifier + number_literal) )))) )) (argument_list "(param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" ( identifier , (binary_expression "local_e4 != (uint *)0x0 || iVar31 != 0" (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "iVar31 != 0" identifier != number_literal)) , identifier ))) ;) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) (if_statement "if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }" { (expression_statement "uVar25 = param_1[0xb];" (assignment_expression "uVar25 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_80 = *local_78;" (assignment_expression "local_80 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "local_e0 = (code *)(uVar25 + 1);" (assignment_expression "local_e0 = (code *)(uVar25 + 1)" identifier = (cast_expression "(code *)(uVar25 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar25 + 1)" ( (binary_expression "uVar25 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" identifier = (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[0xb] = (uint)local_e0;" (assignment_expression "param_1[0xb] = (uint)local_e0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = local_e0;" (assignment_expression "local_c8 = local_e0" identifier = identifier) ;) (if_statement "if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }" { (if_statement "if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" if (parenthesized_expression "((local_e4 == (uint *)0x0) && (iVar31 == 0))" ( (binary_expression "(local_e4 == (uint *)0x0) && (iVar31 == 0)" (parenthesized_expression "(local_e4 == (uint *)0x0)" ( (binary_expression "local_e4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" identifier = identifier) ;) (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b7c48;" if (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7c48;" goto statement_identifier ;)) }) (else_clause "else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" else (compound_statement "{\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" { (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)(local_e0 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(local_e0 + sVar3)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (call_expression "(uint)(local_e0 + sVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e0 + sVar3)" ( (binary_expression "local_e0 + sVar3" identifier + identifier) )))) ;) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" identifier = (binary_expression "local_e0 + sVar3" identifier + identifier)) ;) }))) (labeled_statement "LAB_000b7c3c:\n          local_c8 = pcVar23 + 1;" statement_identifier : (expression_statement "local_c8 = pcVar23 + 1;" (assignment_expression "local_c8 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "param_1[0xb] = (uint)local_c8;" (assignment_expression "param_1[0xb] = (uint)local_c8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_c8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar23 = local_c8;" (assignment_expression "pcVar23 = local_c8" identifier = identifier) ;) }) (else_clause "else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" else (compound_statement "{\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" { (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" identifier = (binary_expression "local_e0 + sVar3" identifier + identifier)) ;) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;" if (parenthesized_expression "(((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0))" ( (binary_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)" (parenthesized_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0))" ( (binary_expression "(uVar12 != 0) || (local_e4 != (uint *)0x0)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000b7c3c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000b7c48:\n        local_90 = pcVar23 + 1;" statement_identifier : (expression_statement "local_90 = pcVar23 + 1;" (assignment_expression "local_90 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "param_1[0xb] = (uint)(pcVar23 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(pcVar23 + sVar3)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (call_expression "(uint)(pcVar23 + sVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar23 + sVar3)" ( (binary_expression "pcVar23 + sVar3" identifier + identifier) )))) ;) }) (else_clause "else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" else (compound_statement "{\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" { (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (code *)0x0;" (assignment_expression "local_90 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = (code *)0x0;" (assignment_expression "local_c8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = (code *)0x0;" (assignment_expression "local_e0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "unaff_s3 = local_d8;" (assignment_expression "unaff_s3 = local_d8" identifier = identifier) ;) (if_statement "if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }" { (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7cac;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7cac;" goto statement_identifier ;)) }) (else_clause "else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" else (compound_statement "{\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" { (expression_statement "local_5c = param_1[0x3d];" (assignment_expression "local_5c = param_1[0x3d]" identifier = (subscript_expression "param_1[0x3d]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x3d] = *unaff_s4;" (assignment_expression "param_1[0x3d] = *unaff_s4" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (if_statement "if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" { (expression_statement "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);" (call_expression "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" identifier (argument_list "(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" ( identifier , identifier , (subscript_expression "unaff_s4[0x12]" identifier [ number_literal ]) , identifier , identifier ))) ;) (labeled_statement "LAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" statement_identifier : (expression_statement "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" (assignment_expression "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x562c)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x562c)" ( (binary_expression "PTR_LAB_000f530c + -0x562c" identifier + number_literal) )))) )) (argument_list "(&local_54,param_4)" ( (pointer_expression "&local_54" & identifier) , identifier )))) ;)) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (iVar35 != 0) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) })) }))) (if_statement "if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }" { (expression_statement "uVar22 = *(uint *)(pcVar32 + 0x20);" (assignment_expression "uVar22 = *(uint *)(pcVar32 + 0x20)" identifier = (pointer_expression "*(uint *)(pcVar32 + 0x20)" * (cast_expression "(uint *)(pcVar32 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x20)" ( (binary_expression "pcVar32 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_b0 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_b0;" (assignment_expression "param_1[0xe] = (uint)local_b0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" if (parenthesized_expression "(((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0))" ( (binary_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)" (parenthesized_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0'))" ( (binary_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')" (parenthesized_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0))" ( (binary_expression "((uVar22 & 1) == 0) || (param_1[0x1e] != 0)" (parenthesized_expression "((uVar22 & 1) == 0)" ( (binary_expression "(uVar22 & 1) == 0" (parenthesized_expression "(uVar22 & 1)" ( (binary_expression "uVar22 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[0x1e] != 0)" ( (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x12) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          local_a8 = 0;\n        }" { (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" else (compound_statement "{\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" { (expression_statement "local_a8 = param_1[0xb] + 1;" (assignment_expression "local_a8 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "param_1[0xb] = local_a8;" (assignment_expression "param_1[0xb] = local_a8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar23)(local_f8,0x45,0,local_a8,0);" (call_expression "(*pcVar23)(local_f8,0x45,0,local_a8,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(local_f8,0x45,0,local_a8,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) (if_statement "if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" if (parenthesized_expression "((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0))" ( (binary_expression "(pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" ( (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" ( (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*local_f4)(local_f8,0x48,0,local_80,local_e0);" (call_expression "(*local_f4)(local_f8,0x48,0,local_80,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x48,0,local_80,local_e0)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_98 = (code *)0x0;" (assignment_expression "local_98 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x5054)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x5054)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x5054)" ( (binary_expression "PTR_LAB_000f5308 + 0x5054" identifier + number_literal) )))) )) (argument_list "(param_1,param_4,local_b0,0x10)" ( identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" statement_identifier : (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" else (compound_statement "{\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" { (labeled_statement "LAB_000b7da8:\n              local_a4 = local_d0;" statement_identifier : (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;)) (if_statement "if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" { (labeled_statement "LAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" statement_identifier : (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;)) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" identifier = identifier) ;) (do_statement "do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);" do (compound_statement "{\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                }" { (expression_statement "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);" (assignment_expression "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35)" identifier = (cast_expression "(short *)(*(int *)(local_ec + 4) + iVar35)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_ec + 4) + iVar35)" ( (binary_expression "*(int *)(local_ec + 4) + iVar35" (pointer_expression "*(int *)(local_ec + 4)" * (cast_expression "(int *)(local_ec + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 4)" ( (binary_expression "local_ec + 4" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" ( identifier , identifier , identifier , (cast_expression "(int)*psVar28" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar28" * identifier)) , identifier ))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) }) while (parenthesized_expression "(local_d0 << 1 != iVar35)" ( (binary_expression "local_d0 << 1 != iVar35" (binary_expression "local_d0 << 1" identifier << number_literal) != identifier) )) ;) })) (expression_statement "local_d0 = local_a4;" (assignment_expression "local_d0 = local_a4" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (labeled_statement "LAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" statement_identifier : (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6954)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6954)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6954)" ( (binary_expression "PTR_LAB_000f52ec + 0x6954" identifier + number_literal) )))) )) (argument_list "(pcVar32,local_ec)" ( identifier , identifier )))) ;)) (expression_statement "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);" (assignment_expression "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" identifier = (call_expression "(*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x5b,local_dc,local_d0,local_98)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(local_f8,uVar21,uVar18,local_d0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x82,local_cc,local_98,local_dc,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" else (if_statement "if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(local_9c == (code *)0x0)" ( (binary_expression "local_9c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_9c = local_dc;\n              }" { (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" else (compound_statement "{\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(*(int *)local_f8,local_f8 + 0x68,local_9c)" ( (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "local_f8 + 0x68" identifier + number_literal) , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }))))) })))) (goto_statement "goto LAB_000b8330;" goto statement_identifier ;) })) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9260:\n          uVar18 = 0x1004;" statement_identifier : (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;)) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" { (if_statement "if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" if (parenthesized_expression "(local_e4 == (uint *)0x0)" ( (binary_expression "local_e4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }" { (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;) (if_statement "if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" { (if_statement "if (uVar12 != 0) goto LAB_000b9278;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b9278;" goto statement_identifier ;)) (expression_statement "uVar18 = 0x100c;" (assignment_expression "uVar18 = 0x100c" identifier = number_literal) ;) (if_statement "if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar18 = 0x1004;\n                }" { (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;) })) })) }) (else_clause "else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" else (compound_statement "{\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" { (labeled_statement "LAB_000b9278:\n              uVar18 = 0x1004;" statement_identifier : (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;)) }))) })) (expression_statement "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);" (assignment_expression "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" identifier = (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" identifier (argument_list "(param_1,param_2,param_4,0,0,uVar18,local_c4)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_7c == 0) goto LAB_000b7aa8;" if (parenthesized_expression "(local_7c == 0)" ( (binary_expression "local_7c == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "local_34 = *(code **)(local_7c + 0x14);" (assignment_expression "local_34 = *(code **)(local_7c + 0x14)" identifier = (pointer_expression "*(code **)(local_7c + 0x14)" * (cast_expression "(code **)(local_7c + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_7c + 0x14)" ( (binary_expression "local_7c + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(code **)(local_7c + 0x18);" (assignment_expression "local_30 = *(code **)(local_7c + 0x18)" identifier = (pointer_expression "*(code **)(local_7c + 0x18)" * (cast_expression "(code **)(local_7c + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_7c + 0x18)" ( (binary_expression "local_7c + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *(char *)(local_7c + 0x2e);" (assignment_expression "cVar2 = *(char *)(local_7c + 0x2e)" identifier = (pointer_expression "*(char *)(local_7c + 0x2e)" * (cast_expression "(char *)(local_7c + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + 0x2e)" ( (binary_expression "local_7c + 0x2e" identifier + number_literal) ))))) ;) (expression_statement "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;" (assignment_expression "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f" identifier = (binary_expression "*(uint *)(local_7c + 0x30) >> 0x1f" (pointer_expression "*(uint *)(local_7c + 0x30)" * (cast_expression "(uint *)(local_7c + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + 0x30)" ( (binary_expression "local_7c + 0x30" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" { (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;) })) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar20 = param_1;\n          }" { (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" * (cast_expression "(undefined1 *)(puVar20 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (if_statement "if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" { (if_statement "if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;" if (parenthesized_expression "((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))" ( (binary_expression "(((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" (parenthesized_expression "(((int)local_30 < 0) || (local_f0 == local_30))" ( (binary_expression "((int)local_30 < 0) || (local_f0 == local_30)" (parenthesized_expression "((int)local_30 < 0)" ( (binary_expression "(int)local_30 < 0" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_f0 == local_30)" ( (binary_expression "local_f0 == local_30" identifier == identifier) ))) )) || (parenthesized_expression "(*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" ( (binary_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'" (pointer_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" * (cast_expression "(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_30 - (int)local_d4)" ( (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;)) (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b937c;" goto statement_identifier ;) })) (if_statement "if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" { (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000b7db0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000b9410;" goto statement_identifier ;) })) (if_statement "if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;" if (parenthesized_expression "((uVar22 & 0x80) != 0)" ( (binary_expression "(uVar22 & 0x80) != 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000b7da8;" goto statement_identifier ;)) (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" { (labeled_statement "LAB_000b937c:\n            uVar22 = param_1[0xb];" statement_identifier : (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;)) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" * identifier) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "(*local_f4)(local_f8,0x93,local_80,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x93,local_80,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x93,local_80,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) (labeled_statement "LAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" statement_identifier : (if_statement "if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" { (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }" { (labeled_statement "LAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" statement_identifier : (if_statement "if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < (int)local_34)" ( (binary_expression "-1 < (int)local_34" number_literal < (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" * (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_34 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_34 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_34 - (int)local_d4)" ( (binary_expression "(int)local_34 - (int)local_d4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) }))) (if_statement "if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < (int)local_30)" ( (binary_expression "-1 < (int)local_30" number_literal < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" * (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_30 - (int)local_d4)" ( (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) })) (if_statement "if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" if (parenthesized_expression "((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))))" ( (binary_expression "(cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" ( (binary_expression "0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" number_literal < (cast_expression "(int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_8c + ((int)~(uint)local_30 >> 0x1f))" ( (binary_expression "local_8c + ((int)~(uint)local_30 >> 0x1f)" identifier + (parenthesized_expression "((int)~(uint)local_30 >> 0x1f)" ( (binary_expression "(int)~(uint)local_30 >> 0x1f" (cast_expression "(int)~(uint)local_30" ( (type_descriptor "int" primitive_type) ) (unary_expression "~(uint)local_30" ~ (cast_expression "(uint)local_30" ( (type_descriptor "uint" type_identifier) ) identifier))) >> number_literal) ))) )))) ))) )) (compound_statement "{\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" { (expression_statement "iVar35 = (*local_f4)(local_f8,0x11,0,0,0);" (assignment_expression "iVar35 = (*local_f4)(local_f8,0x11,0,0,0)" identifier = (call_expression "(*local_f4)(local_f8,0x11,0,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x11,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b908c;" if (parenthesized_expression "(unaff_s4[0xe] == 0)" ( (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000b908c;" goto statement_identifier ;)) (goto_statement "goto LAB_000b90c8;" goto statement_identifier ;) })) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b9084;" if (parenthesized_expression "(unaff_s4[0xe] == 0)" ( (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000b9084;" goto statement_identifier ;)) (labeled_statement "LAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" statement_identifier : (if_statement "if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" if (parenthesized_expression "((local_34 != local_f0) && (local_30 != local_f0))" ( (binary_expression "(local_34 != local_f0) && (local_30 != local_f0)" (parenthesized_expression "(local_34 != local_f0)" ( (binary_expression "local_34 != local_f0" identifier != identifier) )) && (parenthesized_expression "(local_30 != local_f0)" ( (binary_expression "local_30 != local_f0" identifier != identifier) ))) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b902c:\n              local_d4 = local_b0;" statement_identifier : (expression_statement "local_d4 = local_b0;" (assignment_expression "local_d4 = local_b0" identifier = identifier) ;)) (if_statement "if (cVar2 != '\x01') goto LAB_000b9038;" if (parenthesized_expression "(cVar2 != '\x01')" ( (binary_expression "cVar2 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9038;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" else (compound_statement "{\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" { (labeled_statement "LAB_000b9038:\n              uVar22 = param_1[0xe];" statement_identifier : (expression_statement "uVar22 = param_1[0xe];" (assignment_expression "uVar22 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;)) (expression_statement "param_1[0xe] = uVar22 - 1;" (assignment_expression "param_1[0xe] = uVar22 - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) (expression_statement "local_d4 = (code *)(uVar22 - 1);" (assignment_expression "local_d4 = (code *)(uVar22 - 1)" identifier = (cast_expression "(code *)(uVar22 - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )))) ;) }))) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" identifier = identifier) ;) (if_statement "if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = local_e0;\n            }" { (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" identifier = identifier) ;) })) (expression_statement "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x32,pcVar23,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "pcVar23 = local_d4;" (assignment_expression "pcVar23 = local_d4" identifier = identifier) ;) (goto_statement "goto LAB_000b8340;" goto statement_identifier ;) }))) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) (labeled_statement "LAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" statement_identifier : (if_statement "if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }" { (if_statement "if (cVar2 != '\0') goto LAB_000b9784;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9784;" goto statement_identifier ;)) (if_statement "if (unaff_s4[0xe] != 0) goto LAB_000b911c;" if (parenthesized_expression "(unaff_s4[0xe] != 0)" ( (binary_expression "unaff_s4[0xe] != 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000b911c;" goto statement_identifier ;)) (labeled_statement "LAB_000b9084:\n            iVar35 = 0;" statement_identifier : (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7a78))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7a78)" * (cast_expression "(code *)(PTR_000f5314 + 0x7a78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7a78)" ( (binary_expression "PTR_000f5314 + 0x7a78" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal ))) ;)) (labeled_statement "LAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" statement_identifier : (if_statement "if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" { (expression_statement "iVar14 = *(int *)(local_f8 + 0x6c) + -1;" (assignment_expression "iVar14 = *(int *)(local_f8 + 0x6c) + -1" identifier = (binary_expression "*(int *)(local_f8 + 0x6c) + -1" (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" if (parenthesized_expression "(iVar14 == iVar35)" ( (binary_expression "iVar14 == iVar35" identifier == identifier) )) (compound_statement "{\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }" { (expression_statement "*(int *)(local_f8 + 0x6c) = iVar35;" (assignment_expression "*(int *)(local_f8 + 0x6c) = iVar35" (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" else (compound_statement "{\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" { (if_statement "if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }" if (parenthesized_expression "(-1 < iVar35)" ( (binary_expression "-1 < iVar35" number_literal < identifier) )) (compound_statement "{\n                  iVar14 = iVar35;\n                }" { (expression_statement "iVar14 = iVar35;" (assignment_expression "iVar14 = iVar35" identifier = identifier) ;) })) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" if (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" * (cast_expression "(char *)(*(int *)local_f8 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_f8 + 0x51)" ( (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }" { (expression_statement "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));" (assignment_expression "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" identifier = (cast_expression "(undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" ( (binary_expression "iVar14 * 0x14 + *(int *)(local_f8 + 0x68)" (binary_expression "iVar14 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(local_f8 + 0x68)" * (cast_expression "(int *)(local_f8 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x68)" ( (binary_expression "local_f8 + 0x68" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" else (compound_statement "{\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" { (expression_statement "puVar19 = PTR_DAT_000f52bc + 0x5860;" (assignment_expression "puVar19 = PTR_DAT_000f52bc + 0x5860" identifier = (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);" (assignment_expression "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c)" (pointer_expression "*(int *)(puVar19 + 8)" * (cast_expression "(int *)(puVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 8)" ( (binary_expression "puVar19 + 8" identifier + number_literal) )))) = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) }))) }))) (if_statement "if (cVar2 != '\0') goto LAB_000b97d4;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b97d4;" goto statement_identifier ;)) }) (else_clause "else if (cVar2 != '\0') goto LAB_000b902c;" else (if_statement "if (cVar2 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b902c;" goto statement_identifier ;))))) (labeled_statement "LAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" statement_identifier : (if_statement "if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" { (if_statement "if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" if (parenthesized_expression "(pcVar34 != (code *)0x0)" ( (binary_expression "pcVar34 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" { (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" identifier = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_cc,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b916c;" goto statement_identifier ;) })) (expression_statement "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);" (assignment_expression "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" identifier = (cast_expression "(code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x2a,local_80,local_b0,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;" statement_identifier : (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b839c;" if (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b839c;" goto statement_identifier ;))) (labeled_statement "LAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" statement_identifier : (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1,local_b4,local_c8)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_000b837c;" goto statement_identifier ;) }))) (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" identifier = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" { (expression_statement "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0);" (call_expression "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7e,local_cc,local_dc,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,0)" ( identifier , number_literal , identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b9a58;" goto statement_identifier ;) })) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" { (for_statement "for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" for ( ; (binary_expression "iVar35 < local_d0" identifier < identifier) ; (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ) (compound_statement "{\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" { (expression_statement "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_9c + iVar35" identifier + identifier) ))) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;" statement_identifier : (if_statement "if (local_d8 != (code *)0x0) goto LAB_000b9174;" if (parenthesized_expression "(local_d8 != (code *)0x0)" ( (binary_expression "local_d8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9174;" goto statement_identifier ;))) }) (else_clause "else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" else (compound_statement "{\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" { (if_statement "if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n            local_d0 = 0;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" else (compound_statement "{\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" { (expression_statement "local_d0 = (int)*(short *)(local_ec + 0x32);" (assignment_expression "local_d0 = (int)*(short *)(local_ec + 0x32)" identifier = (cast_expression "(int)*(short *)(local_ec + 0x32)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(local_ec + 0x32)" * (cast_expression "(short *)(local_ec + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x32)" ( (binary_expression "local_ec + 0x32" identifier + number_literal) )))))) ;) }))) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) (expression_statement "local_dc = (code *)(param_1[0xb] + 1);" (assignment_expression "local_dc = (code *)(param_1[0xb] + 1)" identifier = (cast_expression "(code *)(param_1[0xb] + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb] + 1)" ( (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;" (assignment_expression "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1" identifier = (binary_expression "pcVar34 + param_1[0xb] + local_d0 + 1" (binary_expression "pcVar34 + param_1[0xb] + local_d0" (binary_expression "pcVar34 + param_1[0xb]" identifier + (subscript_expression "param_1[0xb]" identifier [ number_literal ])) + identifier) + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)local_98;" (assignment_expression "param_1[0xb] = (uint)local_98" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_98" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }" { (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" { (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "local_cc = (code *)param_1[10];" (assignment_expression "local_cc = (code *)param_1[10]" identifier = (cast_expression "(code *)param_1[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "pcVar23 = pcVar34 + iVar35 + local_d0;" (assignment_expression "pcVar23 = pcVar34 + iVar35 + local_d0" identifier = (binary_expression "pcVar34 + iVar35 + local_d0" (binary_expression "pcVar34 + iVar35" identifier + identifier) + identifier)) ;) (expression_statement "param_1[10] = (uint)(local_cc + 1);" (assignment_expression "param_1[10] = (uint)(local_cc + 1)" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (call_expression "(uint)(local_cc + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_cc + 1)" ( (binary_expression "local_cc + 1" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" identifier = identifier) ;) (if_statement "if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }" { (expression_statement "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,100,local_cc,pcVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" else (compound_statement "{\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);" (call_expression "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" ( identifier , number_literal , number_literal , identifier , (binary_expression "local_dc + local_d0 + -1" (binary_expression "local_dc + local_d0" identifier + identifier) + number_literal) ))) ;) (expression_statement "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" identifier = (cast_expression "(code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,100,local_cc,pcVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);" (assignment_expression "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" identifier = (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1400)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1400)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x1400)" ( (binary_expression "PTR_FUN_000f5300 + -0x1400" identifier + number_literal) )))) )) (argument_list "(param_1,local_ec)" ( identifier , identifier )))) ;) (if_statement "if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (compound_statement "{\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x280c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x280c)" ( (binary_expression "PTR_LAB_000f52ec + 0x280c" identifier + number_literal) )))) ;) (expression_statement "*(short *)(iVar35 + 8) = (short)pcVar23;" (assignment_expression "*(short *)(iVar35 + 8) = (short)pcVar23" (pointer_expression "*(short *)(iVar35 + 8)" * (cast_expression "(short *)(iVar35 + 8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 8)" ( (binary_expression "iVar35 + 8" identifier + number_literal) )))) = (cast_expression "(short)pcVar23" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "(*pcVar36)(local_f8,iVar35,0xfffffff7);" (call_expression "(*pcVar36)(local_f8,iVar35,0xfffffff7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,iVar35,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) })) }))) (expression_statement "local_f4 = (code *)(puVar19 + -0x47a8);" (assignment_expression "local_f4 = (code *)(puVar19 + -0x47a8)" identifier = (cast_expression "(code *)(puVar19 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x47a8)" ( (binary_expression "puVar19 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b9260;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9260;" goto statement_identifier ;)) (if_statement "if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_f0 = local_cc;\n            }" { (expression_statement "local_f0 = local_cc;" (assignment_expression "local_f0 = local_cc" identifier = identifier) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(param_1,local_cc,local_ec,param_3,param_2,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" else (compound_statement "{\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" { (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7d5c;" goto statement_identifier ;)) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar20 = param_1;\n          }" { (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" identifier = identifier) ;) })) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" * (cast_expression "(undefined1 *)(puVar20 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (labeled_statement "LAB_000b8330:\n          pcVar23 = local_b0;" statement_identifier : (expression_statement "pcVar23 = local_b0;" (assignment_expression "pcVar23 = local_b0" identifier = identifier) ;)) (if_statement "if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8ff0;" goto statement_identifier ;)) (goto_statement "goto LAB_000b9014;" goto statement_identifier ;) })) (labeled_statement "LAB_000b8340:\n          local_d4 = pcVar23;" statement_identifier : (expression_statement "local_d4 = pcVar23;" (assignment_expression "local_d4 = pcVar23" identifier = identifier) ;)) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" if (parenthesized_expression "(local_d8 != (code *)0x0)" ( (binary_expression "local_d8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8358;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8358;" goto statement_identifier ;)) (labeled_statement "LAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,local_ac,local_c8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0xf,local_c8,0,0);" (call_expression "(*local_f4)(local_f8,0xf,local_c8,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0xf,local_c8,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) })) }))) (labeled_statement "LAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" statement_identifier : (if_statement "if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }" { (if_statement "if (iVar31 != 0) goto LAB_000b8840;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8840;" goto statement_identifier ;)) (if_statement "if (local_e4 != (uint *)0x0) goto LAB_000b8838;" if (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8838;" goto statement_identifier ;)) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) }) (else_clause "else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" else (compound_statement "{\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (if_statement "if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" { (labeled_statement "LAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" statement_identifier : (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" if (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) == 0)" ( (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) == 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" ( (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" * (cast_expression "(uint *)(*param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000b8838:\n              uVar22 = 0;\n            }" { (labeled_statement "LAB_000b8838:\n              uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" else (compound_statement "{\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" { (expression_statement "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);" (assignment_expression "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" identifier = (call_expression "(*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7450))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7450)" * (cast_expression "(code *)(PTR_000f5314 + 0x7450)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7450)" ( (binary_expression "PTR_000f5314 + 0x7450" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4)" ( identifier , identifier )))) ;) })))) })) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) (expression_statement "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);" (assignment_expression "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" identifier = (call_expression "FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" identifier (argument_list "(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" identifier = identifier) ;) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" if (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" { (expression_statement "local_f4 = (code *)0x0;" (assignment_expression "local_f4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0xf74)" ( (binary_expression "PTR_LAB_000f52ec + 0xf74" identifier + number_literal) )))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));" do (compound_statement "{\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            }" { (expression_statement "iVar35 = (int)(short)uVar33;" (assignment_expression "iVar35 = (int)(short)uVar33" identifier = (cast_expression "(int)(short)uVar33" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar33" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (if_statement "if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" if (parenthesized_expression "((unaff_s4[9] & 0x20) != 0)" ( (binary_expression "(unaff_s4[9] & 0x20) != 0" (parenthesized_expression "(unaff_s4[9] & 0x20)" ( (binary_expression "unaff_s4[9] & 0x20" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" { (expression_statement "iVar35 = (*pcVar23)(unaff_s4,iVar35);" (assignment_expression "iVar35 = (*pcVar23)(unaff_s4,iVar35)" identifier = (call_expression "(*pcVar23)(unaff_s4,iVar35)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(unaff_s4,iVar35)" ( identifier , identifier )))) ;) })) (if_statement "if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" if (parenthesized_expression "(((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))))" ( (binary_expression "((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" (parenthesized_expression "((uVar25 | uVar22) == 0xffffffff)" ( (binary_expression "(uVar25 | uVar22) == 0xffffffff" (parenthesized_expression "(uVar25 | uVar22)" ( (binary_expression "uVar25 | uVar22" identifier | identifier) )) == number_literal) )) || (parenthesized_expression "((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" ( (parenthesized_expression "(((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))" ( (binary_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" (parenthesized_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0))" ( (binary_expression "(int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" (binary_expression "(int)uVar33 < 0x20" (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (parenthesized_expression "((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" ( (binary_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0" (parenthesized_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22))" ( (binary_expression "1 << (uVar33 & 0x1f) & (uVar25 | uVar22)" (binary_expression "1 << (uVar33 & 0x1f)" number_literal << (parenthesized_expression "(uVar33 & 0x1f)" ( (binary_expression "uVar33 & 0x1f" identifier & number_literal) ))) & (parenthesized_expression "(uVar25 | uVar22)" ( (binary_expression "uVar25 | uVar22" identifier | identifier) ))) )) != number_literal) ))) )) || (parenthesized_expression "((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" ( (binary_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0" (parenthesized_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1)" ( (binary_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1" (pointer_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" * (cast_expression "(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + (int)local_f4 + 0x10)" ( (binary_expression "unaff_s4[1] + (int)local_f4 + 0x10" (binary_expression "unaff_s4[1] + (int)local_f4" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }" { (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" ( identifier , identifier , identifier , identifier , (binary_expression "iVar35 + local_94" identifier + identifier) ))) ;) }) (else_clause "else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" else (compound_statement "{\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" { (expression_statement "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);" (call_expression "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0)" (parenthesized_expression "(*(code *)(puVar19 + -0x47a8))" ( (pointer_expression "*(code *)(puVar19 + -0x47a8)" * (cast_expression "(code *)(puVar19 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x47a8)" ( (binary_expression "puVar19 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x48,0,iVar35 + local_94,0)" ( identifier , number_literal , number_literal , (binary_expression "iVar35 + local_94" identifier + identifier) , number_literal ))) ;) }))) (expression_statement "uVar33 = uVar33 + 1;" (assignment_expression "uVar33 = uVar33 + 1" identifier = (binary_expression "uVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_f4 = (code *)((int)local_f4 + 0x14);" (assignment_expression "local_f4 = (code *)((int)local_f4 + 0x14)" identifier = (cast_expression "(code *)((int)local_f4 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f4 + 0x14)" ( (binary_expression "(int)local_f4 + 0x14" (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "(int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) ;) })) (if_statement "if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" if (parenthesized_expression "((local_d8 == (code *)0x0) && (local_ec == 0))" ( (binary_expression "(local_d8 == (code *)0x0) && (local_ec == 0)" (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x4d,local_e0,local_c8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) })))) (expression_statement "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);" (assignment_expression "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" identifier = (call_expression "(*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" (parenthesized_expression "(*local_b4)" ( (pointer_expression "*local_b4" * identifier) )) (argument_list "(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar19 = PTR_LAB_000f5308;" (assignment_expression "puVar19 = PTR_LAB_000f5308" identifier = identifier) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" if (parenthesized_expression "(0 < iVar35)" ( (binary_expression "0 < iVar35" number_literal < identifier) )) (compound_statement "{\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" identifier = identifier) ;) (do_statement "do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);" do (compound_statement "{\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          }" { (if_statement "if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" if (parenthesized_expression "(uVar25 == (int)*(short *)(unaff_s4 + 10))" ( (binary_expression "uVar25 == (int)*(short *)(unaff_s4 + 10)" identifier == (cast_expression "(int)*(short *)(unaff_s4 + 10)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" { (labeled_statement "LAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);" statement_identifier : (expression_statement "(*pcVar13)(local_f8,0x48,0,pcVar23,0);" (call_expression "(*pcVar13)(local_f8,0x48,0,pcVar23,0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(local_f8,0x48,0,pcVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) (else_clause "else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" else (compound_statement "{\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" { (expression_statement "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);" (assignment_expression "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" identifier = (pointer_expression "*(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" * (cast_expression "(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + uVar25 * 0x14 + 0x10)" ( (binary_expression "unaff_s4[1] + uVar25 * 0x14 + 0x10" (binary_expression "unaff_s4[1] + uVar25 * 0x14" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (binary_expression "uVar25 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" if (parenthesized_expression "((uVar4 & 0x60) == 0)" ( (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" ( (binary_expression "uVar4 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }" { (expression_statement "iVar14 = piVar9[uVar25];" (assignment_expression "iVar14 = piVar9[uVar25]" identifier = (subscript_expression "piVar9[uVar25]" identifier [ identifier ])) ;) (if_statement "if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }" { (if_statement "if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;" if (parenthesized_expression "((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0))" ( (binary_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" (parenthesized_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20))" ( (binary_expression "((local_64 & 1) != 0) && ((int)uVar25 < 0x20)" (parenthesized_expression "((local_64 & 1) != 0)" ( (binary_expression "(local_64 & 1) != 0" (parenthesized_expression "(local_64 & 1)" ( (binary_expression "local_64 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)uVar25 < 0x20)" ( (binary_expression "(int)uVar25 < 0x20" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) && (parenthesized_expression "((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar22 >> (uVar25 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar22 >> (uVar25 & 0x1f) & 1)" ( (binary_expression "uVar22 >> (uVar25 & 0x1f) & 1" (binary_expression "uVar22 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_000b8640;" goto statement_identifier ;)) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) }) (else_clause "else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" else (if_statement "if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }" { (if_statement "if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" { (expression_statement "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);" (call_expression "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23)" (parenthesized_expression "(*(code *)(puVar19 + 0x7228))" ( (pointer_expression "*(code *)(puVar19 + 0x7228)" * (cast_expression "(code *)(puVar19 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7228)" ( (binary_expression "puVar19 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1,param_3[iVar14 * 4 + 1],pcVar23)" ( identifier , (subscript_expression "param_3[iVar14 * 4 + 1]" identifier [ (binary_expression "iVar14 * 4 + 1" (binary_expression "iVar14 * 4" identifier * number_literal) + number_literal) ]) , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) }) (else_clause "else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" else (compound_statement "{\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" { (expression_statement "iVar15 = local_d0;" (assignment_expression "iVar15 = local_d0" identifier = identifier) ;) (if_statement "if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar15 = iVar35;\n                  }" { (expression_statement "iVar15 = iVar35;" (assignment_expression "iVar15 = iVar35" identifier = identifier) ;) })) (expression_statement "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);" (call_expression "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" ( identifier , number_literal , identifier , (binary_expression "iVar14 + iVar15" identifier + identifier) , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }))))) }) (else_clause "else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" else (if_statement "if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" if (parenthesized_expression "((uVar4 & 0x20) != 0)" ( (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                pcVar23 = pcVar23 + -1;\n              }" { (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" identifier = (binary_expression "pcVar23 + -1" identifier + number_literal)) ;) })))) }))) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar25 < iVar35)" ( (binary_expression "(int)uVar25 < iVar35" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(param_1,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" if (parenthesized_expression "((local_64 & 1) == 0)" ( (binary_expression "(local_64 & 1) == 0" (parenthesized_expression "(local_64 & 1)" ( (binary_expression "local_64 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }" { (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" { (labeled_statement "LAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x2f14)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x2f14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x2f14)" ( (binary_expression "PTR_LAB_000f52c8 + -0x2f14" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "param_5 & 0xff" identifier & number_literal) , identifier , (pointer_expression "&local_60" & identifier) , identifier , number_literal ))) ;)) (if_statement "if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" if (parenthesized_expression "((local_60 != 0) || (uVar12 != 0))" ( (binary_expression "(local_60 != 0) || (uVar12 != 0)" (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" { (if_statement "if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" else (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" { (labeled_statement "LAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x87,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (goto_statement "goto LAB_000b8fac;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) goto LAB_000b8ea8;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8ea8;" goto statement_identifier ;)) }) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" else (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) goto LAB_000b8f88;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8f88;" goto statement_identifier ;)) (labeled_statement "LAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" statement_identifier : (if_statement "if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" if (parenthesized_expression "((1 < iVar31) || (uVar12 != 0))" ( (binary_expression "(1 < iVar31) || (uVar12 != 0)" (parenthesized_expression "(1 < iVar31)" ( (binary_expression "1 < iVar31" number_literal < identifier) )) || (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" { (labeled_statement "LAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7a,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) }))) (if_statement "if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" ( identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar18 = 6;\n                }" { (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" identifier = number_literal) ;) }) (else_clause "else {\n                  uVar18 = 4;\n                }" else (compound_statement "{\n                  uVar18 = 4;\n                }" { (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" if (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) != 0)" ( (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" ( (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" * (cast_expression "(uint *)(*param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x15ac)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x15ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x15ac)" ( (binary_expression "PTR_LAB_000f52c8 + -0x15ac" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8698;" goto statement_identifier ;) })) }))) (if_statement "if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n              uVar18 = 6;\n            }" { (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" identifier = number_literal) ;) }) (else_clause "else {\n              uVar18 = 4;\n            }" else (compound_statement "{\n              uVar18 = 4;\n            }" { (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" else (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x336c)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x336c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x336c)" ( (binary_expression "PTR_LAB_000f52e8 + -0x336c" identifier + number_literal) )))) )) (argument_list "(local_f8,unaff_s4,local_90)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (expression_statement "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);" (call_expression "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" identifier (argument_list "(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" { (if_statement "if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" else (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" identifier = identifier) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (while_statement "while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" while (parenthesized_expression "(iVar35 < iVar14)" ( (binary_expression "iVar35 < iVar14" identifier < identifier) )) (compound_statement "{\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" { (expression_statement "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);" (assignment_expression "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" identifier = (pointer_expression "*(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" * (cast_expression "(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 * 0x14 + unaff_s4[1] + 0x10)" ( (binary_expression "iVar35 * 0x14 + unaff_s4[1] + 0x10" (binary_expression "iVar35 * 0x14 + unaff_s4[1]" (binary_expression "iVar35 * 0x14" identifier * number_literal) + (subscript_expression "unaff_s4[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" if (parenthesized_expression "((uVar4 & 0x60) == 0)" ( (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" ( (binary_expression "uVar4 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }" { (if_statement "if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;" if (parenthesized_expression "((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))" ( (binary_expression "(-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10))" (parenthesized_expression "(-1 < piVar9[iVar35])" ( (binary_expression "-1 < piVar9[iVar35]" number_literal < (subscript_expression "piVar9[iVar35]" identifier [ identifier ])) )) || (parenthesized_expression "(iVar35 == *(short *)(unaff_s4 + 10))" ( (binary_expression "iVar35 == *(short *)(unaff_s4 + 10)" identifier == (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_000b95b4;" goto statement_identifier ;)) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = pcVar36;" (assignment_expression "local_e8 = pcVar36" identifier = identifier) ;) }) (else_clause "else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" else (compound_statement "{\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" { (if_statement "if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }" if (parenthesized_expression "((uVar4 & 0x20) != 0)" ( (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  pcVar23 = pcVar23 + -1;\n                }" { (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" identifier = (binary_expression "pcVar23 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_000b95b4:\n                pcVar23 = pcVar23 + 1;" statement_identifier : (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(param_1,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8da4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" statement_identifier : (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x52,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) }))) (expression_statement "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);" (call_expression "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" (parenthesized_expression "(*unaff_s3)" ( (pointer_expression "*unaff_s3" * identifier) )) (argument_list "(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }" { (labeled_statement "LAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" statement_identifier : (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;)) }) (else_clause "else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (if_statement "if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }" { (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) }) (else_clause "else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (compound_statement "{\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" { (if_statement "if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" if (parenthesized_expression "((local_ec == 0) && (pcVar34 == (code *)0x0))" ( (binary_expression "(local_ec == 0) && (pcVar34 == (code *)0x0)" (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0xb,0,local_d4,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b881c;" goto statement_identifier ;) })) (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,5,local_cc,local_a0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s3 = local_f8;" (assignment_expression "unaff_s3 = local_f8" identifier = identifier) ;) }))))) (expression_statement "(*pcVar34)(local_f8,local_b0);" (call_expression "(*pcVar34)(local_f8,local_b0)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_b0)" ( identifier , identifier ))) ;) (if_statement "if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" if (parenthesized_expression "((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0))" ( (binary_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)" (parenthesized_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))" ( (binary_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0)" (parenthesized_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0))" ( (binary_expression "(*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x1e] == 0)" ( (binary_expression "param_1[0x1e] == 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(param_1[0x1c] != 0)" ( (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" { (expression_statement "(*(code *)(PTR_000f5314 + 0x78e0))(param_1);" (call_expression "(*(code *)(PTR_000f5314 + 0x78e0))(param_1)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x78e0))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x78e0)" * (cast_expression "(code *)(PTR_000f5314 + 0x78e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x78e0)" ( (binary_expression "PTR_000f5314 + 0x78e0" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x50,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7e44)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7e44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7e44)" ( (binary_expression "PTR_LAB_000f52ec + 0x7e44" identifier + number_literal) )))) )) (argument_list "(local_f8,1)" ( identifier , number_literal ))) ;) (expression_statement "pcVar34 = local_f8;" (assignment_expression "pcVar34 = local_f8" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" if (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" * (cast_expression "(char *)(*(int *)local_f8 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_f8 + 0x51)" ( (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" { (expression_statement "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);" (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1e28)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1e28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x1e28)" ( (binary_expression "PTR_FUN_000f5300 + -0x1e28" identifier + number_literal) )))) )) (argument_list "(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" ( identifier , number_literal , number_literal , (binary_expression "PTR_DAT_000f52d4 + -0x67ec" identifier + number_literal) , number_literal ))) ;) })) })) }) (else_clause "else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" else (compound_statement "{\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" { (expression_statement "local_e4 = (uint *)unaff_s4[0x10];" (assignment_expression "local_e4 = (uint *)unaff_s4[0x10]" identifier = (cast_expression "(uint *)unaff_s4[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[0x10]" identifier [ number_literal ]))) ;) (expression_statement "pcVar34 = (code *)param_1[2];" (assignment_expression "pcVar34 = (code *)param_1[2]" identifier = (cast_expression "(code *)param_1[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *param_1;" (assignment_expression "uVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" if (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" { (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" identifier = (pointer_expression "*local_e4" * identifier)) ;) (while_statement "while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }" while (parenthesized_expression "((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)))" ( (parenthesized_expression "(uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))" ( (binary_expression "uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" (binary_expression "uVar22 != uVar12" identifier != identifier) && (parenthesized_expression "(local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" ( (comma_expression "local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0" (assignment_expression "local_e4 = (uint *)local_e4[6]" identifier = (cast_expression "(uint *)local_e4[6]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_e4[6]" identifier [ number_literal ]))) , (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n            uVar22 = *local_e4;\n          }" { (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" identifier = (pointer_expression "*local_e4" * identifier)) ;) })) })) (expression_statement "local_100 = param_1[10];" (assignment_expression "local_100 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;" (assignment_expression "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2" identifier = (binary_expression "*(short *)((int)unaff_s4 + 0x2a) + 2" (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "iVar31 = param_2[0xc];" (assignment_expression "iVar31 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "param_1[10] = local_100 + 1;" (assignment_expression "param_1[10] = local_100 + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "local_100 + 1" identifier + number_literal)) ;) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" identifier = (cast_expression "(code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(pcVar34,100,local_100,iVar14,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,100,local_100,iVar14,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "local_e0 = (code *)param_1[0xb];" (assignment_expression "local_e0 = (code *)param_1[0xb]" identifier = (cast_expression "(code *)param_1[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (expression_statement "iVar35 = *param_2;" (assignment_expression "iVar35 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pcVar23 = local_e0 + iVar14;" (assignment_expression "pcVar23 = local_e0 + iVar14" identifier = (binary_expression "local_e0 + iVar14" identifier + identifier)) ;) (expression_statement "local_e8 = local_e0 + 1;" (assignment_expression "local_e8 = local_e0 + 1" identifier = (binary_expression "local_e0 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" if (parenthesized_expression "(iVar35 < 2)" ( (binary_expression "iVar35 < 2" identifier < number_literal) )) (compound_statement "{\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }" { (expression_statement "pcVar13 = pcVar23 + 2;" (assignment_expression "pcVar13 = pcVar23 + 2" identifier = (binary_expression "pcVar23 + 2" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)pcVar13;" (assignment_expression "param_1[0xb] = (uint)pcVar13" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);" (assignment_expression "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" identifier = (cast_expression "(code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" identifier (argument_list "(param_1,param_2,param_4,0,0,4,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;" if (parenthesized_expression "(unaff_s3 == (code *)0x0)" ( (binary_expression "unaff_s3 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_d4 = local_e0 + 3;" (assignment_expression "local_d4 = local_e0 + 3" identifier = (binary_expression "local_e0 + 3" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (while_statement "while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" while (parenthesized_expression "(iVar15 < iVar35)" ( (binary_expression "iVar15 < iVar35" identifier < identifier) )) (compound_statement "{\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" { (if_statement "if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" if (parenthesized_expression "(*piVar11 < 0)" ( (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" * identifier) < number_literal) )) (compound_statement "{\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }" { (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_d4 + iVar15" identifier + identifier) ))) ;) (if_statement "if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" if (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) < 1)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) < 1" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }" { (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" else (compound_statement "{\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;" (assignment_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1" (pointer_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" * (cast_expression "(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" else (compound_statement "{\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" { (if_statement "if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" { (expression_statement "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);" (call_expression "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1])" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(param_1,param_3[*piVar11 * 4 + 1])" ( identifier , (subscript_expression "param_3[*piVar11 * 4 + 1]" identifier [ (binary_expression "*piVar11 * 4 + 1" (binary_expression "*piVar11 * 4" (pointer_expression "*piVar11" * identifier) * number_literal) + number_literal) ]) ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" if (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" ( (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" ( (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }" { (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x7f,iVar31,local_e8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }" { (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x7f,iVar31,local_e0 + 2,0)" ( identifier , number_literal , identifier , (binary_expression "local_e0 + 2" identifier + number_literal) , number_literal ))) ;) }) (else_clause "else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" else (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })))) }) (else_clause "else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" else (compound_statement "{\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" { (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" { (if_statement "if (uVar12 == 0) {\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Does not return */\n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" { comment (expression_statement "pcVar34 = (code *)trap(0);" (assignment_expression "pcVar34 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;" if (parenthesized_expression "((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80)" ( (binary_expression "(*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80" (parenthesized_expression "(*(byte *)(uVar12 + 0x37) & 0xc0)" ( (binary_expression "*(byte *)(uVar12 + 0x37) & 0xc0" (pointer_expression "*(byte *)(uVar12 + 0x37)" * (cast_expression "(byte *)(uVar12 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x37)" ( (binary_expression "uVar12 + 0x37" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = *(uint *)(uVar12 + 0x14);" (assignment_expression "uVar12 = *(uint *)(uVar12 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar12 + 0x14)" * (cast_expression "(uint *)(uVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) ))))) ;) })) (expression_statement "local_d4 = (code *)(int)**(short **)(uVar12 + 4);" (assignment_expression "local_d4 = (code *)(int)**(short **)(uVar12 + 4)" identifier = (cast_expression "(code *)(int)**(short **)(uVar12 + 4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)**(short **)(uVar12 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "**(short **)(uVar12 + 4)" * (pointer_expression "*(short **)(uVar12 + 4)" * (cast_expression "(short **)(uVar12 + 4)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar12 + 4)" ( (binary_expression "uVar12 + 4" identifier + number_literal) )))))))) ;) (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0xa6,iVar31,local_d4,local_e8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" ( identifier , number_literal , (binary_expression "local_e0 + 3 + (int)local_d4" (binary_expression "local_e0 + 3" identifier + number_literal) + (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "local_e0 + 2" identifier + number_literal) , number_literal ))) ;) }))) (expression_statement "local_34 = *(code **)(unaff_s3 + 0x14);" (assignment_expression "local_34 = *(code **)(unaff_s3 + 0x14)" identifier = (pointer_expression "*(code **)(unaff_s3 + 0x14)" * (cast_expression "(code **)(unaff_s3 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s3 + 0x14)" ( (binary_expression "unaff_s3 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(code **)(unaff_s3 + 0x18);" (assignment_expression "local_30 = *(code **)(unaff_s3 + 0x18)" identifier = (pointer_expression "*(code **)(unaff_s3 + 0x18)" * (cast_expression "(code **)(unaff_s3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s3 + 0x18)" ( (binary_expression "unaff_s3 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];" (assignment_expression "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e]" identifier = (cast_expression "(code *)(uint)(byte)unaff_s3[0x2e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)unaff_s3[0x2e]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)unaff_s3[0x2e]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "unaff_s3[0x2e]" identifier [ number_literal ]))))) ;) (if_statement "if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" if (parenthesized_expression "(pcVar16 == (code *)0x0)" ( (binary_expression "pcVar16 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" { (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar17 = param_1;\n            }" { (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(puVar17 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar17 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar17 + 5)" * (cast_expression "(undefined1 *)(puVar17 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 5)" ( (binary_expression "puVar17 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);" (call_expression "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" ( identifier , number_literal , identifier , identifier , (binary_expression "pcVar23 + 1" identifier + number_literal) ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);" (call_expression "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x78,local_100,pcVar13,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);" (call_expression "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" ( identifier , number_literal , identifier , (binary_expression "pcVar23 + 1" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b80d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" ( (pointer_expression "*(int *)pcVar34" * (cast_expression "(int *)pcVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pcVar34 + 0x68" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x74,iVar31,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,iVar31,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x74,iVar31,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "local_e0 = pcVar16;" (assignment_expression "local_e0 = pcVar16" identifier = identifier) ;) (expression_statement "local_b0 = pcVar16;" (assignment_expression "local_b0 = pcVar16" identifier = identifier) ;) }) (else_clause "else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" else (compound_statement "{\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" { (if_statement "if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }" { (expression_statement "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);" (assignment_expression "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" identifier = (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x5d30)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" ( (binary_expression "PTR_FUN_000f5300 + -0x5d30" identifier + number_literal) )))) )) (argument_list "(param_1,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" else (compound_statement "{\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" { (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))" ( (pointer_expression "*(code *)(PTR_LAB_000f52fc + -0x7698)" * (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) )) (argument_list "(uVar12)" ( identifier )))) ;) }))) (expression_statement "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);" (assignment_expression "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4)" identifier = (cast_expression "(code *)(PTR_LAB_000f530c + 0x59e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x59e4)" ( (binary_expression "PTR_LAB_000f530c + 0x59e4" identifier + number_literal) )))) ;) (expression_statement "iVar31 = (*local_e0)(*param_1,0,uVar18);" (assignment_expression "iVar31 = (*local_e0)(*param_1,0,uVar18)" identifier = (call_expression "(*local_e0)(*param_1,0,uVar18)" (parenthesized_expression "(*local_e0)" ( (pointer_expression "*local_e0" * identifier) )) (argument_list "(*param_1,0,uVar18)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" if (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" { (expression_statement "local_f0 = (code *)0x1;" (assignment_expression "local_f0 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);" (assignment_expression "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30)" identifier = (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" ( (binary_expression "PTR_FUN_000f5300 + -0x5d30" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698)" identifier = (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) ;) (expression_statement "local_f8 = (code *)piVar9;" (assignment_expression "local_f8 = (code *)piVar9" identifier = (cast_expression "(code *)piVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);" do (compound_statement "{\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            }" { (if_statement "if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" if (parenthesized_expression "(*(int *)local_f8 < 0)" ( (binary_expression "*(int *)local_f8 < 0" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }" { (expression_statement "uVar22 = (*pcVar23)(param_1,0x4b,0,0);" (assignment_expression "uVar22 = (*pcVar23)(param_1,0x4b,0,0)" identifier = (call_expression "(*pcVar23)(param_1,0x4b,0,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_1,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" { (expression_statement "*(short *)(uVar22 + 0x20) = (short)local_f0;" (assignment_expression "*(short *)(uVar22 + 0x20) = (short)local_f0" (pointer_expression "*(short *)(uVar22 + 0x20)" * (cast_expression "(short *)(uVar22 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x20)" ( (binary_expression "uVar22 + 0x20" identifier + number_literal) )))) = (cast_expression "(short)local_f0" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" else (compound_statement "{\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" { (expression_statement "uVar22 = param_3[*(int *)local_f8 * 4 + 1];" (assignment_expression "uVar22 = param_3[*(int *)local_f8 * 4 + 1]" identifier = (subscript_expression "param_3[*(int *)local_f8 * 4 + 1]" identifier [ (binary_expression "*(int *)local_f8 * 4 + 1" (binary_expression "*(int *)local_f8 * 4" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) + number_literal) ])) ;) (if_statement "if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" { (expression_statement "uVar22 = (*pcVar13)(uVar12,uVar22,0,0);" (assignment_expression "uVar22 = (*pcVar13)(uVar12,uVar22,0,0)" identifier = (call_expression "(*pcVar13)(uVar12,uVar22,0,0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(uVar12,uVar22,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) })) }))) (expression_statement "iVar31 = (*local_e0)(*param_1,iVar31,uVar22);" (assignment_expression "iVar31 = (*local_e0)(*param_1,iVar31,uVar22)" identifier = (call_expression "(*local_e0)(*param_1,iVar31,uVar22)" (parenthesized_expression "(*local_e0)" ( (pointer_expression "*local_e0" * identifier) )) (argument_list "(*param_1,iVar31,uVar22)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier )))) ;) (expression_statement "local_f8 = (code *)((int)local_f8 + 4);" (assignment_expression "local_f8 = (code *)((int)local_f8 + 4)" identifier = (cast_expression "(code *)((int)local_f8 + 4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f8 + 4)" ( (binary_expression "(int)local_f8 + 4" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (binary_expression "(int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "local_f0 = (code *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (code *)((int)local_f0 + 1)" identifier = (cast_expression "(code *)((int)local_f0 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_d4 = pcVar32;" (assignment_expression "local_d4 = pcVar32" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(param_1,local_100,0,iVar31,param_2,param_4)" ( identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n            unaff_s3 = (code *)0x0;\n          }" { (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" else (compound_statement "{\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" { (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(uVar12,iVar31)" ( identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" statement_identifier : (if_statement "if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" if (parenthesized_expression "(*param_2 == 1)" ( (binary_expression "*param_2 == 1" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) }))) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" identifier = (cast_expression "(code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(pcVar34,0x25,local_100,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x25,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))))) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" { (do_statement "do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);" do (compound_statement "{\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            }" { (expression_statement "iVar35 = iVar31 + 1;" (assignment_expression "iVar35 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);" (call_expression "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_e8 + iVar31" identifier + identifier) ))) ;) (expression_statement "iVar31 = iVar35;" (assignment_expression "iVar31 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar14 != iVar35)" ( (binary_expression "iVar14 != iVar35" identifier != identifier) )) ;) })) }))) (expression_statement "pcVar23 = local_f0;" (assignment_expression "pcVar23 = local_f0" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6b18)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6b18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6b18)" ( (binary_expression "PTR_LAB_000f52ec + 0x6b18" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4)" ( identifier , identifier ))) ;) (expression_statement "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);" (assignment_expression "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8)" identifier = (call_expression "(*pcVar36)(pcVar34,10,0,iVar14,local_e8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,10,0,iVar14,local_e8)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(pcVar34,uVar18,local_e4,0xfffffff4)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (param_5 == 0xb) {\n          param_5 = 2;\n        }" if (parenthesized_expression "(param_5 == 0xb)" ( (binary_expression "param_5 == 0xb" identifier == number_literal) )) (compound_statement "{\n          param_5 = 2;\n        }" { (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" identifier = number_literal) ;) })) (if_statement "if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" if (parenthesized_expression "(0 < *(int *)(pcVar34 + 0x6c))" ( (binary_expression "0 < *(int *)(pcVar34 + 0x6c)" number_literal < (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" { (expression_statement "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;" (assignment_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5" (pointer_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" * (cast_expression "(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = (cast_expression "(short)param_5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar17 = param_1;\n        }" { (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)((int)puVar17 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)puVar17 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)puVar17 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar17 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 0x15)" ( (binary_expression "(int)puVar17 + 0x15" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" if (parenthesized_expression "(local_b0 == (code *)0x0)" ( (binary_expression "local_b0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }" { (expression_statement "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);" (call_expression "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,5,local_100,local_f0 + 1,0)" ( identifier , number_literal , identifier , (binary_expression "local_f0 + 1" identifier + number_literal) , number_literal ))) ;) (if_statement "if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" if (parenthesized_expression "((int)local_f0 < 0)" ( (binary_expression "(int)local_f0 < 0" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" { (expression_statement "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);" (assignment_expression "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar34 + 0x6c) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar34 + 0x6c) - 1)" ( (binary_expression "*(uint *)(pcVar34 + 0x6c) - 1" (pointer_expression "*(uint *)(pcVar34 + 0x6c)" * (cast_expression "(uint *)(pcVar34 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) - number_literal) )))) ;) })) (if_statement "if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" if (parenthesized_expression "(*(char *)(*(int *)pcVar34 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)pcVar34 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)pcVar34 + 0x51)" * (cast_expression "(char *)(*(int *)pcVar34 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)pcVar34 + 0x51)" ( (binary_expression "*(int *)pcVar34 + 0x51" (pointer_expression "*(int *)pcVar34" * (cast_expression "(int *)pcVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }" { (expression_statement "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));" (assignment_expression "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" identifier = (cast_expression "(uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" ( (binary_expression "(int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "(int)local_f0 * 0x14" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" else (compound_statement "{\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" { (expression_statement "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);" (assignment_expression "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860)" identifier = (cast_expression "(uint *)(PTR_DAT_000f52bc + 0x5860)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52bc + 0x5860)" ( (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal) )))) ;) }))) (expression_statement "param_1[2] = *(uint *)(pcVar34 + 0x6c);" (assignment_expression "param_1[2] = *(uint *)(pcVar34 + 0x6c)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(pcVar34 + 0x6c)" * (cast_expression "(uint *)(pcVar34 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar36)(pcVar34,0x74,local_100,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,local_100,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x74,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "unaff_s3 = pcVar23;" (assignment_expression "unaff_s3 = pcVar23" identifier = identifier) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) }) (else_clause "else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" else (compound_statement "{\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) }))) }))) }))) (labeled_statement "LAB_000b7aa8:\n    puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (if_statement "if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" if (parenthesized_expression "(local_58 != (uint *)0x0)" ( (binary_expression "local_58 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" { (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x7728)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) )) (argument_list "(pcVar32,piVar9)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = puVar20;" (assignment_expression "unaff_s4 = puVar20" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void sqlite3Update(Parse *pParse,SrcList *pTabList,ExprList *pChanges,Expr *pWhere,int onError,\n                  ExprList *pOrderBy,Expr *pLimit,Upsert *pUpsert)\n\n{\n  Index **ppIVar1;\n  byte bVar2;\n  u8 uVar3;\n  short sVar4;\n  ushort uVar5;\n  bool bVar6;\n  u64 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  int *piVar14;\n  int iVar15;\n  code *pcVar16;\n  uint uVar17;\n  int iVar18;\n  sqlite3 *psVar19;\n  code *pcVar20;\n  Expr *pEVar21;\n  Vdbe *pVVar22;\n  u32 uVar23;\n  code *pcVar24;\n  int iVar25;\n  Parse *pPVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  undefined4 uVar29;\n  uint uVar30;\n  Index *pIVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  byte *pbVar34;\n  sqlite3 *psVar35;\n  int iVar36;\n  Column *pCVar37;\n  char *pcVar38;\n  byte *pbVar39;\n  short *psVar40;\n  Column *pCVar41;\n  Column *pCVar42;\n  sqlite3 *psVar43;\n  int *piVar44;\n  uint uVar45;\n  WhereInfo *pWVar46;\n  WhereInfo *unaff_s3;\n  WhereInfo *pWVar47;\n  Table *unaff_s4;\n  Table *pTVar48;\n  Vdbe **ppVVar49;\n  Parse *unaff_s5;\n  int iVar50;\n  Select *pSVar51;\n  Table *in_stack_fffffed4;\n  sqlite3 *in_stack_fffffed8;\n  AggInfo *local_100;\n  WhereInfo *local_f8;\n  code *local_f4;\n  WhereInfo *local_f0;\n  Index *local_ec;\n  Select *local_e8;\n  Schema *local_e4;\n  sqlite3 *local_e0;\n  sqlite3 *local_dc;\n  WhereInfo *local_d8;\n  sqlite3 *local_d4;\n  int local_d0;\n  sqlite3 *local_cc;\n  sqlite3 *local_c8;\n  sqlite3 *local_c4;\n  code *local_b4;\n  sqlite3 *local_b0;\n  WhereInfo *local_ac;\n  int local_a8;\n  int local_a4;\n  undefined4 local_a0;\n  sqlite3 *local_9c;\n  sqlite3 *local_98;\n  int local_94;\n  Vdbe **local_90;\n  undefined1 *local_8c;\n  uint local_88;\n  int local_84;\n  int local_80;\n  WhereInfo *local_7c;\n  int *local_78;\n  int tmask;\n  int bReplace;\n  AuthContext sContext;\n  NameContext sNC;\n  int aiCurOnePass [2];\n  \n  puVar10 = PTR___stack_chk_guard_000f5568;\n  local_100 = (AggInfo *)pOrderBy;\n  pWVar46 = (WhereInfo *)pParse->nErr;\n  bReplace = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  iVar11 = *(int *)PTR___stack_chk_guard_000f5568;\n  psVar43 = pParse->db;\n  if ((pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)) {\n    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);\n    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;\n    if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }\n    local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);\n    local_e8 = unaff_s4->pSelect;\n    if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }\n    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);\n    if (iVar15 != 0) goto LAB_000b7424;\n    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);\n    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;\n    local_d4 = (sqlite3 *)pParse->nTab;\n    uVar17 = unaff_s4->tabFlags;\n    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);\n    pIVar31 = unaff_s4->pIndex;\n    pParse->nTab = (int)local_c4;\n    local_f0 = (WhereInfo *)local_d4;\n    if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }\n    psVar35 = local_c4;\n    do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);\n    pParse->nTab = (int)psVar35;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }\n    puVar33 = local_8c + 1;\n    piVar44 = piVar12 + unaff_s4->nCol;\n    piVar13 = piVar44 + (int)puVar33;\n    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;\n    sVar4 = unaff_s4->nCol;\n    if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }\n    local_f8 = (WhereInfo *)pParse->pVdbe;\n    sNC.pNext = (NameContext *)0x0;\n    sNC.uNC.pAggInfo = local_100;\n    sNC.nRef = 0;\n    sNC.nErr = 0;\n    sNC.pWinSelect = (Select *)0x0;\n    sNC.ncFlags = 0x200;\n    sNC.pParse = pParse;\n    sNC.pSrcList = pTabList;\n    if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    pPVar26 = sContext.pParse;\n    if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);\n    unaff_s4 = pTVar48;\n    unaff_s5 = pParse;\n  } while( true );\n}\n\n" (function_definition "void sqlite3Update(Parse *pParse,SrcList *pTabList,ExprList *pChanges,Expr *pWhere,int onError,\n                  ExprList *pOrderBy,Expr *pLimit,Upsert *pUpsert)\n\n{\n  Index **ppIVar1;\n  byte bVar2;\n  u8 uVar3;\n  short sVar4;\n  ushort uVar5;\n  bool bVar6;\n  u64 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  int *piVar14;\n  int iVar15;\n  code *pcVar16;\n  uint uVar17;\n  int iVar18;\n  sqlite3 *psVar19;\n  code *pcVar20;\n  Expr *pEVar21;\n  Vdbe *pVVar22;\n  u32 uVar23;\n  code *pcVar24;\n  int iVar25;\n  Parse *pPVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  undefined4 uVar29;\n  uint uVar30;\n  Index *pIVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  byte *pbVar34;\n  sqlite3 *psVar35;\n  int iVar36;\n  Column *pCVar37;\n  char *pcVar38;\n  byte *pbVar39;\n  short *psVar40;\n  Column *pCVar41;\n  Column *pCVar42;\n  sqlite3 *psVar43;\n  int *piVar44;\n  uint uVar45;\n  WhereInfo *pWVar46;\n  WhereInfo *unaff_s3;\n  WhereInfo *pWVar47;\n  Table *unaff_s4;\n  Table *pTVar48;\n  Vdbe **ppVVar49;\n  Parse *unaff_s5;\n  int iVar50;\n  Select *pSVar51;\n  Table *in_stack_fffffed4;\n  sqlite3 *in_stack_fffffed8;\n  AggInfo *local_100;\n  WhereInfo *local_f8;\n  code *local_f4;\n  WhereInfo *local_f0;\n  Index *local_ec;\n  Select *local_e8;\n  Schema *local_e4;\n  sqlite3 *local_e0;\n  sqlite3 *local_dc;\n  WhereInfo *local_d8;\n  sqlite3 *local_d4;\n  int local_d0;\n  sqlite3 *local_cc;\n  sqlite3 *local_c8;\n  sqlite3 *local_c4;\n  code *local_b4;\n  sqlite3 *local_b0;\n  WhereInfo *local_ac;\n  int local_a8;\n  int local_a4;\n  undefined4 local_a0;\n  sqlite3 *local_9c;\n  sqlite3 *local_98;\n  int local_94;\n  Vdbe **local_90;\n  undefined1 *local_8c;\n  uint local_88;\n  int local_84;\n  int local_80;\n  WhereInfo *local_7c;\n  int *local_78;\n  int tmask;\n  int bReplace;\n  AuthContext sContext;\n  NameContext sNC;\n  int aiCurOnePass [2];\n  \n  puVar10 = PTR___stack_chk_guard_000f5568;\n  local_100 = (AggInfo *)pOrderBy;\n  pWVar46 = (WhereInfo *)pParse->nErr;\n  bReplace = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  iVar11 = *(int *)PTR___stack_chk_guard_000f5568;\n  psVar43 = pParse->db;\n  if ((pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)) {\n    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);\n    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;\n    if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }\n    local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);\n    local_e8 = unaff_s4->pSelect;\n    if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }\n    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);\n    if (iVar15 != 0) goto LAB_000b7424;\n    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);\n    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;\n    local_d4 = (sqlite3 *)pParse->nTab;\n    uVar17 = unaff_s4->tabFlags;\n    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);\n    pIVar31 = unaff_s4->pIndex;\n    pParse->nTab = (int)local_c4;\n    local_f0 = (WhereInfo *)local_d4;\n    if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }\n    psVar35 = local_c4;\n    do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);\n    pParse->nTab = (int)psVar35;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }\n    puVar33 = local_8c + 1;\n    piVar44 = piVar12 + unaff_s4->nCol;\n    piVar13 = piVar44 + (int)puVar33;\n    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;\n    sVar4 = unaff_s4->nCol;\n    if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }\n    local_f8 = (WhereInfo *)pParse->pVdbe;\n    sNC.pNext = (NameContext *)0x0;\n    sNC.uNC.pAggInfo = local_100;\n    sNC.nRef = 0;\n    sNC.nErr = 0;\n    sNC.pWinSelect = (Select *)0x0;\n    sNC.ncFlags = 0x200;\n    sNC.pParse = pParse;\n    sNC.pSrcList = pTabList;\n    if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    pPVar26 = sContext.pParse;\n    if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);\n    unaff_s4 = pTVar48;\n    unaff_s5 = pParse;\n  } while( true );\n}" primitive_type (function_declarator "sqlite3Update(Parse *pParse,SrcList *pTabList,ExprList *pChanges,Expr *pWhere,int onError,\n                  ExprList *pOrderBy,Expr *pLimit,Upsert *pUpsert)" identifier (parameter_list "(Parse *pParse,SrcList *pTabList,ExprList *pChanges,Expr *pWhere,int onError,\n                  ExprList *pOrderBy,Expr *pLimit,Upsert *pUpsert)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "SrcList *pTabList" type_identifier (pointer_declarator "*pTabList" * identifier)) , (parameter_declaration "ExprList *pChanges" type_identifier (pointer_declarator "*pChanges" * identifier)) , (parameter_declaration "Expr *pWhere" type_identifier (pointer_declarator "*pWhere" * identifier)) , (parameter_declaration "int onError" primitive_type identifier) , (parameter_declaration "ExprList *pOrderBy" type_identifier (pointer_declarator "*pOrderBy" * identifier)) , (parameter_declaration "Expr *pLimit" type_identifier (pointer_declarator "*pLimit" * identifier)) , (parameter_declaration "Upsert *pUpsert" type_identifier (pointer_declarator "*pUpsert" * identifier)) ))) (compound_statement "{\n  Index **ppIVar1;\n  byte bVar2;\n  u8 uVar3;\n  short sVar4;\n  ushort uVar5;\n  bool bVar6;\n  u64 uVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  int *piVar14;\n  int iVar15;\n  code *pcVar16;\n  uint uVar17;\n  int iVar18;\n  sqlite3 *psVar19;\n  code *pcVar20;\n  Expr *pEVar21;\n  Vdbe *pVVar22;\n  u32 uVar23;\n  code *pcVar24;\n  int iVar25;\n  Parse *pPVar26;\n  undefined4 uVar27;\n  undefined *puVar28;\n  undefined4 uVar29;\n  uint uVar30;\n  Index *pIVar31;\n  undefined1 *puVar32;\n  undefined1 *puVar33;\n  byte *pbVar34;\n  sqlite3 *psVar35;\n  int iVar36;\n  Column *pCVar37;\n  char *pcVar38;\n  byte *pbVar39;\n  short *psVar40;\n  Column *pCVar41;\n  Column *pCVar42;\n  sqlite3 *psVar43;\n  int *piVar44;\n  uint uVar45;\n  WhereInfo *pWVar46;\n  WhereInfo *unaff_s3;\n  WhereInfo *pWVar47;\n  Table *unaff_s4;\n  Table *pTVar48;\n  Vdbe **ppVVar49;\n  Parse *unaff_s5;\n  int iVar50;\n  Select *pSVar51;\n  Table *in_stack_fffffed4;\n  sqlite3 *in_stack_fffffed8;\n  AggInfo *local_100;\n  WhereInfo *local_f8;\n  code *local_f4;\n  WhereInfo *local_f0;\n  Index *local_ec;\n  Select *local_e8;\n  Schema *local_e4;\n  sqlite3 *local_e0;\n  sqlite3 *local_dc;\n  WhereInfo *local_d8;\n  sqlite3 *local_d4;\n  int local_d0;\n  sqlite3 *local_cc;\n  sqlite3 *local_c8;\n  sqlite3 *local_c4;\n  code *local_b4;\n  sqlite3 *local_b0;\n  WhereInfo *local_ac;\n  int local_a8;\n  int local_a4;\n  undefined4 local_a0;\n  sqlite3 *local_9c;\n  sqlite3 *local_98;\n  int local_94;\n  Vdbe **local_90;\n  undefined1 *local_8c;\n  uint local_88;\n  int local_84;\n  int local_80;\n  WhereInfo *local_7c;\n  int *local_78;\n  int tmask;\n  int bReplace;\n  AuthContext sContext;\n  NameContext sNC;\n  int aiCurOnePass [2];\n  \n  puVar10 = PTR___stack_chk_guard_000f5568;\n  local_100 = (AggInfo *)pOrderBy;\n  pWVar46 = (WhereInfo *)pParse->nErr;\n  bReplace = 0;\n  sContext.zAuthContext = (char *)0x0;\n  sContext.pParse = (Parse *)0x0;\n  iVar11 = *(int *)PTR___stack_chk_guard_000f5568;\n  psVar43 = pParse->db;\n  if ((pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)) {\n    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);\n    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;\n    if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }\n    local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);\n    local_e8 = unaff_s4->pSelect;\n    if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }\n    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);\n    if (iVar15 != 0) goto LAB_000b7424;\n    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);\n    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;\n    local_d4 = (sqlite3 *)pParse->nTab;\n    uVar17 = unaff_s4->tabFlags;\n    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);\n    pIVar31 = unaff_s4->pIndex;\n    pParse->nTab = (int)local_c4;\n    local_f0 = (WhereInfo *)local_d4;\n    if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }\n    psVar35 = local_c4;\n    do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);\n    pParse->nTab = (int)psVar35;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }\n    puVar33 = local_8c + 1;\n    piVar44 = piVar12 + unaff_s4->nCol;\n    piVar13 = piVar44 + (int)puVar33;\n    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;\n    sVar4 = unaff_s4->nCol;\n    if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }\n    local_f8 = (WhereInfo *)pParse->pVdbe;\n    sNC.pNext = (NameContext *)0x0;\n    sNC.uNC.pAggInfo = local_100;\n    sNC.nRef = 0;\n    sNC.nErr = 0;\n    sNC.pWinSelect = (Select *)0x0;\n    sNC.ncFlags = 0x200;\n    sNC.pParse = pParse;\n    sNC.pSrcList = pTabList;\n    if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    pPVar26 = sContext.pParse;\n    if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);\n    unaff_s4 = pTVar48;\n    unaff_s5 = pParse;\n  } while( true );\n}" { (declaration "Index **ppIVar1;" type_identifier (pointer_declarator "**ppIVar1" * (pointer_declarator "*ppIVar1" * identifier)) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "u8 uVar3;" type_identifier identifier ;) (declaration "short sVar4;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar5;" type_identifier identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "u64 uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int *piVar14;" primitive_type (pointer_declarator "*piVar14" * identifier) ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "sqlite3 *psVar19;" type_identifier (pointer_declarator "*psVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "Expr *pEVar21;" type_identifier (pointer_declarator "*pEVar21" * identifier) ;) (declaration "Vdbe *pVVar22;" type_identifier (pointer_declarator "*pVVar22" * identifier) ;) (declaration "u32 uVar23;" type_identifier identifier ;) (declaration "code *pcVar24;" type_identifier (pointer_declarator "*pcVar24" * identifier) ;) (declaration "int iVar25;" primitive_type identifier ;) (declaration "Parse *pPVar26;" type_identifier (pointer_declarator "*pPVar26" * identifier) ;) (declaration "undefined4 uVar27;" type_identifier identifier ;) (declaration "undefined *puVar28;" type_identifier (pointer_declarator "*puVar28" * identifier) ;) (declaration "undefined4 uVar29;" type_identifier identifier ;) (declaration "uint uVar30;" type_identifier identifier ;) (declaration "Index *pIVar31;" type_identifier (pointer_declarator "*pIVar31" * identifier) ;) (declaration "undefined1 *puVar32;" type_identifier (pointer_declarator "*puVar32" * identifier) ;) (declaration "undefined1 *puVar33;" type_identifier (pointer_declarator "*puVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "sqlite3 *psVar35;" type_identifier (pointer_declarator "*psVar35" * identifier) ;) (declaration "int iVar36;" primitive_type identifier ;) (declaration "Column *pCVar37;" type_identifier (pointer_declarator "*pCVar37" * identifier) ;) (declaration "char *pcVar38;" primitive_type (pointer_declarator "*pcVar38" * identifier) ;) (declaration "byte *pbVar39;" type_identifier (pointer_declarator "*pbVar39" * identifier) ;) (declaration "short *psVar40;" (sized_type_specifier "short" short) (pointer_declarator "*psVar40" * identifier) ;) (declaration "Column *pCVar41;" type_identifier (pointer_declarator "*pCVar41" * identifier) ;) (declaration "Column *pCVar42;" type_identifier (pointer_declarator "*pCVar42" * identifier) ;) (declaration "sqlite3 *psVar43;" type_identifier (pointer_declarator "*psVar43" * identifier) ;) (declaration "int *piVar44;" primitive_type (pointer_declarator "*piVar44" * identifier) ;) (declaration "uint uVar45;" type_identifier identifier ;) (declaration "WhereInfo *pWVar46;" type_identifier (pointer_declarator "*pWVar46" * identifier) ;) (declaration "WhereInfo *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "WhereInfo *pWVar47;" type_identifier (pointer_declarator "*pWVar47" * identifier) ;) (declaration "Table *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "Table *pTVar48;" type_identifier (pointer_declarator "*pTVar48" * identifier) ;) (declaration "Vdbe **ppVVar49;" type_identifier (pointer_declarator "**ppVVar49" * (pointer_declarator "*ppVVar49" * identifier)) ;) (declaration "Parse *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar50;" primitive_type identifier ;) (declaration "Select *pSVar51;" type_identifier (pointer_declarator "*pSVar51" * identifier) ;) (declaration "Table *in_stack_fffffed4;" type_identifier (pointer_declarator "*in_stack_fffffed4" * identifier) ;) (declaration "sqlite3 *in_stack_fffffed8;" type_identifier (pointer_declarator "*in_stack_fffffed8" * identifier) ;) (declaration "AggInfo *local_100;" type_identifier (pointer_declarator "*local_100" * identifier) ;) (declaration "WhereInfo *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "code *local_f4;" type_identifier (pointer_declarator "*local_f4" * identifier) ;) (declaration "WhereInfo *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "Index *local_ec;" type_identifier (pointer_declarator "*local_ec" * identifier) ;) (declaration "Select *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "Schema *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "sqlite3 *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "sqlite3 *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "WhereInfo *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "sqlite3 *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "sqlite3 *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "sqlite3 *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "sqlite3 *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "sqlite3 *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "WhereInfo *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "int local_a8;" primitive_type identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "undefined4 local_a0;" type_identifier identifier ;) (declaration "sqlite3 *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "sqlite3 *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "Vdbe **local_90;" type_identifier (pointer_declarator "**local_90" * (pointer_declarator "*local_90" * identifier)) ;) (declaration "undefined1 *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "WhereInfo *local_7c;" type_identifier (pointer_declarator "*local_7c" * identifier) ;) (declaration "int *local_78;" primitive_type (pointer_declarator "*local_78" * identifier) ;) (declaration "int tmask;" primitive_type identifier ;) (declaration "int bReplace;" primitive_type identifier ;) (declaration "AuthContext sContext;" type_identifier identifier ;) (declaration "NameContext sNC;" type_identifier identifier ;) (declaration "int aiCurOnePass [2];" primitive_type (array_declarator "aiCurOnePass [2]" identifier [ number_literal ]) ;) (expression_statement "puVar10 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar10 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_100 = (AggInfo *)pOrderBy;" (assignment_expression "local_100 = (AggInfo *)pOrderBy" identifier = (cast_expression "(AggInfo *)pOrderBy" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pWVar46 = (WhereInfo *)pParse->nErr;" (assignment_expression "pWVar46 = (WhereInfo *)pParse->nErr" identifier = (cast_expression "(WhereInfo *)pParse->nErr" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->nErr" identifier -> field_identifier))) ;) (expression_statement "bReplace = 0;" (assignment_expression "bReplace = 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 "iVar11 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar11 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "psVar43 = pParse->db;" (assignment_expression "psVar43 = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (if_statement "if ((pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)) {\n    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);\n    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;\n    if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }\n    local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);\n    local_e8 = unaff_s4->pSelect;\n    if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }\n    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);\n    if (iVar15 != 0) goto LAB_000b7424;\n    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);\n    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;\n    local_d4 = (sqlite3 *)pParse->nTab;\n    uVar17 = unaff_s4->tabFlags;\n    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);\n    pIVar31 = unaff_s4->pIndex;\n    pParse->nTab = (int)local_c4;\n    local_f0 = (WhereInfo *)local_d4;\n    if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }\n    psVar35 = local_c4;\n    do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);\n    pParse->nTab = (int)psVar35;\n    goto LAB_000b7504;\n  }" if (parenthesized_expression "((pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0))" ( (binary_expression "(pWVar46 == (WhereInfo *)0x0) &&\n     (unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)" (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0)" ( (comma_expression "unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed, unaff_s3 == (WhereInfo *)0x0" (assignment_expression "unaff_s3 = (WhereInfo *)(uint)psVar43->mallocFailed" identifier = (cast_expression "(WhereInfo *)(uint)psVar43->mallocFailed" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)psVar43->mallocFailed" ( (type_descriptor "uint" type_identifier) ) (field_expression "psVar43->mallocFailed" identifier -> field_identifier)))) , (binary_expression "unaff_s3 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);\n    if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;\n    if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }\n    local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);\n    local_e8 = unaff_s4->pSelect;\n    if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }\n    iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);\n    if (iVar15 != 0) goto LAB_000b7424;\n    local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);\n    if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;\n    local_d4 = (sqlite3 *)pParse->nTab;\n    uVar17 = unaff_s4->tabFlags;\n    local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);\n    pIVar31 = unaff_s4->pIndex;\n    pParse->nTab = (int)local_c4;\n    local_f0 = (WhereInfo *)local_d4;\n    if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }\n    psVar35 = local_c4;\n    do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);\n    pParse->nTab = (int)psVar35;\n    goto LAB_000b7504;\n  }" { (expression_statement "unaff_s4 = sqlite3SrcListLookup(pParse,pTabList);" (assignment_expression "unaff_s4 = sqlite3SrcListLookup(pParse,pTabList)" identifier = (call_expression "sqlite3SrcListLookup(pParse,pTabList)" identifier (argument_list "(pParse,pTabList)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s4 == (Table *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(unaff_s4 == (Table *)0x0)" ( (binary_expression "unaff_s4 == (Table *)0x0" identifier == (cast_expression "(Table *)0x0" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (if_statement "if (unaff_s4->pSchema == (Schema *)0x0) {\n      local_e0 = (sqlite3 *)0xffff8000;\n    }\n    else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }" if (parenthesized_expression "(unaff_s4->pSchema == (Schema *)0x0)" ( (binary_expression "unaff_s4->pSchema == (Schema *)0x0" (field_expression "unaff_s4->pSchema" identifier -> field_identifier) == (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_e0 = (sqlite3 *)0xffff8000;\n    }" { (expression_statement "local_e0 = (sqlite3 *)0xffff8000;" (assignment_expression "local_e0 = (sqlite3 *)0xffff8000" identifier = (cast_expression "(sqlite3 *)0xffff8000" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }" else (compound_statement "{\n      local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);\n    }" { (expression_statement "local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db);" (assignment_expression "local_e0 = (sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db)" identifier = (cast_expression "(sqlite3 *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))(pParse->db)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x1608)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1608)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1608)" ( (binary_expression "PTR_LAB_000f52ec + 0x1608" identifier + number_literal) )))) )) (argument_list "(pParse->db)" ( (field_expression "pParse->db" identifier -> field_identifier) ))))) ;) }))) (expression_statement "local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask);" (assignment_expression "local_e4 = (Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask)" identifier = (cast_expression "(Schema *)\n               (*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask)" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))(pParse,unaff_s4,0x7f,pChanges,&tmask)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x20b0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x20b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x20b0)" ( (binary_expression "PTR_LAB_000f52ec + 0x20b0" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,0x7f,pChanges,&tmask)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&tmask" & identifier) ))))) ;) (expression_statement "local_e8 = unaff_s4->pSelect;" (assignment_expression "local_e8 = unaff_s4->pSelect" identifier = (field_expression "unaff_s4->pSelect" identifier -> field_identifier)) ;) (if_statement "if (1 < pTabList->nSrc) {\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }" if (parenthesized_expression "(1 < pTabList->nSrc)" ( (binary_expression "1 < pTabList->nSrc" number_literal < (field_expression "pTabList->nSrc" identifier -> field_identifier)) )) (compound_statement "{\n      pWVar46 = (WhereInfo *)pChanges->nExpr;\n    }" { (expression_statement "pWVar46 = (WhereInfo *)pChanges->nExpr;" (assignment_expression "pWVar46 = (WhereInfo *)pChanges->nExpr" identifier = (cast_expression "(WhereInfo *)pChanges->nExpr" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pChanges->nExpr" identifier -> field_identifier))) ;) })) (expression_statement "iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4);" (assignment_expression "iVar15 = sqlite3ViewGetColumnNames(pParse,unaff_s4)" identifier = (call_expression "sqlite3ViewGetColumnNames(pParse,unaff_s4)" identifier (argument_list "(pParse,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar15 != 0) goto LAB_000b7424;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask);" (assignment_expression "local_b0 = (sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask)" identifier = (cast_expression "(sqlite3 *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))(pParse,unaff_s4,tmask)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x45b0)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x45b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x45b0)" ( (binary_expression "PTR_LAB_000f530c + -0x45b0" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,tmask)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_b0 != (sqlite3 *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(local_b0 != (sqlite3 *)0x0)" ( (binary_expression "local_b0 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_d4 = (sqlite3 *)pParse->nTab;" (assignment_expression "local_d4 = (sqlite3 *)pParse->nTab" identifier = (cast_expression "(sqlite3 *)pParse->nTab" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->nTab" identifier -> field_identifier))) ;) (expression_statement "uVar17 = unaff_s4->tabFlags;" (assignment_expression "uVar17 = unaff_s4->tabFlags" identifier = (field_expression "unaff_s4->tabFlags" identifier -> field_identifier)) ;) (expression_statement "local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1);" (assignment_expression "local_c4 = (sqlite3 *)((int)&local_d4->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&local_d4->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_d4->pVfs + 1)" ( (binary_expression "(int)&local_d4->pVfs + 1" (cast_expression "(int)&local_d4->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->pVfs" & (field_expression "local_d4->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pIVar31 = unaff_s4->pIndex;" (assignment_expression "pIVar31 = unaff_s4->pIndex" identifier = (field_expression "unaff_s4->pIndex" identifier -> field_identifier)) ;) (expression_statement "pParse->nTab = (int)local_c4;" (assignment_expression "pParse->nTab = (int)local_c4" (field_expression "pParse->nTab" identifier -> field_identifier) = (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_f0 = (WhereInfo *)local_d4;" (assignment_expression "local_f0 = (WhereInfo *)local_d4" identifier = (cast_expression "(WhereInfo *)local_d4" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if ((uVar17 & 0x80) == 0) {\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }" if (parenthesized_expression "((uVar17 & 0x80) == 0)" ( (binary_expression "(uVar17 & 0x80) == 0" (parenthesized_expression "(uVar17 & 0x80)" ( (binary_expression "uVar17 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_ec = (Index *)0x0;\n      if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }\n    }" { (expression_statement "local_ec = (Index *)0x0;" (assignment_expression "local_ec = (Index *)0x0" identifier = (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pIVar31 == (Index *)0x0) {\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }" if (parenthesized_expression "(pIVar31 == (Index *)0x0)" ( (binary_expression "pIVar31 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_8c = (undefined1 *)0x0;\n        goto LAB_000b7504;\n      }" { (expression_statement "local_8c = (undefined1 *)0x0;" (assignment_expression "local_8c = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }" else (compound_statement "{\n      if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;\n      bVar2 = pIVar31->field_0x37;\n      local_ec = pIVar31;\n      while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }\n    }" { (if_statement "if (pIVar31 == (Index *)0x0) goto LAB_000b82e4;" if (parenthesized_expression "(pIVar31 == (Index *)0x0)" ( (binary_expression "pIVar31 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b82e4;" goto statement_identifier ;)) (expression_statement "bVar2 = pIVar31->field_0x37;" (assignment_expression "bVar2 = pIVar31->field_0x37" identifier = (field_expression "pIVar31->field_0x37" identifier -> field_identifier)) ;) (expression_statement "local_ec = pIVar31;" (assignment_expression "local_ec = pIVar31" identifier = identifier) ;) (while_statement "while (((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))) {\n        bVar2 = local_ec->field_0x37;\n      }" while (parenthesized_expression "(((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0)))" ( (parenthesized_expression "((bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0))" ( (binary_expression "(bVar2 & 0xc0) != 0x80 && (local_ec = local_ec->pNext, local_ec != (Index *)0x0)" (binary_expression "(bVar2 & 0xc0) != 0x80" (parenthesized_expression "(bVar2 & 0xc0)" ( (binary_expression "bVar2 & 0xc0" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(local_ec = local_ec->pNext, local_ec != (Index *)0x0)" ( (comma_expression "local_ec = local_ec->pNext, local_ec != (Index *)0x0" (assignment_expression "local_ec = local_ec->pNext" identifier = (field_expression "local_ec->pNext" identifier -> field_identifier)) , (binary_expression "local_ec != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n        bVar2 = local_ec->field_0x37;\n      }" { (expression_statement "bVar2 = local_ec->field_0x37;" (assignment_expression "bVar2 = local_ec->field_0x37" identifier = (field_expression "local_ec->field_0x37" identifier -> field_identifier)) ;) })) }))) (expression_statement "psVar35 = local_c4;" (assignment_expression "psVar35 = local_c4" identifier = identifier) ;) (do_statement "do {\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    } while (*ppIVar1 != (Index *)0x0);" do (compound_statement "{\n      ppIVar1 = &pIVar31->pNext;\n      if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }\n      psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n      local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);\n      pIVar31 = *ppIVar1;\n    }" { (expression_statement "ppIVar1 = &pIVar31->pNext;" (assignment_expression "ppIVar1 = &pIVar31->pNext" identifier = (pointer_expression "&pIVar31->pNext" & (field_expression "pIVar31->pNext" identifier -> field_identifier))) ;) (if_statement "if (pIVar31 == local_ec) {\n        local_f0 = (WhereInfo *)psVar35;\n      }" if (parenthesized_expression "(pIVar31 == local_ec)" ( (binary_expression "pIVar31 == local_ec" identifier == identifier) )) (compound_statement "{\n        local_f0 = (WhereInfo *)psVar35;\n      }" { (expression_statement "local_f0 = (WhereInfo *)psVar35;" (assignment_expression "local_f0 = (WhereInfo *)psVar35" identifier = (cast_expression "(WhereInfo *)psVar35" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);" (assignment_expression "psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&psVar35->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar35->pVfs + 1)" ( (binary_expression "(int)&psVar35->pVfs + 1" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4);" (assignment_expression "local_8c = (undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4)" identifier = (cast_expression "(undefined1 *)((int)&psVar35->pVfs + ~(uint)local_d4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar35->pVfs + ~(uint)local_d4)" ( (binary_expression "(int)&psVar35->pVfs + ~(uint)local_d4" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + (unary_expression "~(uint)local_d4" ~ (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier))) )))) ;) (expression_statement "pIVar31 = *ppIVar1;" (assignment_expression "pIVar31 = *ppIVar1" identifier = (pointer_expression "*ppIVar1" * identifier)) ;) }) while (parenthesized_expression "(*ppIVar1 != (Index *)0x0)" ( (binary_expression "*ppIVar1 != (Index *)0x0" (pointer_expression "*ppIVar1" * identifier) != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pParse->nTab = (int)psVar35;" (assignment_expression "pParse->nTab = (int)psVar35" (field_expression "pParse->nTab" identifier -> field_identifier) = (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) (do_statement "do {\n    while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }\n    puVar33 = local_8c + 1;\n    piVar44 = piVar12 + unaff_s4->nCol;\n    piVar13 = piVar44 + (int)puVar33;\n    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;\n    sVar4 = unaff_s4->nCol;\n    if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }\n    local_f8 = (WhereInfo *)pParse->pVdbe;\n    sNC.pNext = (NameContext *)0x0;\n    sNC.uNC.pAggInfo = local_100;\n    sNC.nRef = 0;\n    sNC.nErr = 0;\n    sNC.pWinSelect = (Select *)0x0;\n    sNC.ncFlags = 0x200;\n    sNC.pParse = pParse;\n    sNC.pSrcList = pTabList;\n    if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    pPVar26 = sContext.pParse;\n    if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);\n    unaff_s4 = pTVar48;\n    unaff_s5 = pParse;\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }\n    puVar33 = local_8c + 1;\n    piVar44 = piVar12 + unaff_s4->nCol;\n    piVar13 = piVar44 + (int)puVar33;\n    (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n    *(undefined1 *)((int)piVar13 + (int)puVar33) = 0;\n    sVar4 = unaff_s4->nCol;\n    if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }\n    local_f8 = (WhereInfo *)pParse->pVdbe;\n    sNC.pNext = (NameContext *)0x0;\n    sNC.uNC.pAggInfo = local_100;\n    sNC.nRef = 0;\n    sNC.nErr = 0;\n    sNC.pWinSelect = (Select *)0x0;\n    sNC.ncFlags = 0x200;\n    sNC.pParse = pParse;\n    sNC.pSrcList = pTabList;\n    if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    pPVar26 = sContext.pParse;\n    if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);\n    unaff_s4 = pTVar48;\n    unaff_s5 = pParse;\n  }" { (while_statement "while( true ) {\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pParse = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);\n      if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }\n      if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }\n      if (iVar11 == *(int *)puVar10) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = (Index *)0x0;\n      local_8c = (undefined1 *)0x0;\n      local_f0 = (WhereInfo *)local_d4;\nLAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }\n      puVar28 = PTR_LAB_000f52ec;\n      pTabList->a[0].iCursor = (int)local_f0;\n      piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);\n      if (piVar12 != (int *)0x0) break;\nLAB_000b7424:\n      pPVar26 = sContext.pParse;\n      unaff_s5 = pParse;\n      if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }\n    }" { (expression_statement "pParse = unaff_s5;" (assignment_expression "pParse = unaff_s5" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))(psVar43,pTabList)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x35c8)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x35c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x35c8)" ( (binary_expression "PTR_LAB_000f530c + 0x35c8" identifier + number_literal) )))) )) (argument_list "(psVar43,pTabList)" ( identifier , identifier ))) ;) (if_statement "if (pChanges != (ExprList *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }" if (parenthesized_expression "(pChanges != (ExprList *)0x0)" ( (binary_expression "pChanges != (ExprList *)0x0" identifier != (cast_expression "(ExprList *)0x0" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar43,pChanges)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(psVar43,pChanges)" ( identifier , identifier ))) ;) })) (if_statement "if (pWhere != (Expr *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }" if (parenthesized_expression "(pWhere != (Expr *)0x0)" ( (binary_expression "pWhere != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))(psVar43,pWhere)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3940)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3940)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3940)" ( (binary_expression "PTR_LAB_000f530c + 0x3940" identifier + number_literal) )))) )) (argument_list "(psVar43,pWhere)" ( identifier , identifier ))) ;) })) (if_statement "if (iVar11 == *(int *)puVar10) {\n        return;\n      }" if (parenthesized_expression "(iVar11 == *(int *)puVar10)" ( (binary_expression "iVar11 == *(int *)puVar10" identifier == (pointer_expression "*(int *)puVar10" * (cast_expression "(int *)puVar10" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000b82e4:\n      local_ec = (Index *)0x0;" statement_identifier : (expression_statement "local_ec = (Index *)0x0;" (assignment_expression "local_ec = (Index *)0x0" identifier = (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_8c = (undefined1 *)0x0;" (assignment_expression "local_8c = (undefined1 *)0x0" identifier = (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = (WhereInfo *)local_d4;" (assignment_expression "local_f0 = (WhereInfo *)local_d4" identifier = (cast_expression "(WhereInfo *)local_d4" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_000b7504:\n      if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }" statement_identifier : (if_statement "if (local_100 != (AggInfo *)0x0) {\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }" if (parenthesized_expression "(local_100 != (AggInfo *)0x0)" ( (binary_expression "local_100 != (AggInfo *)0x0" identifier != (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_f0 = (WhereInfo *)local_100->aCol;\n        local_c4 = (sqlite3 *)local_100->nColumn;\n        pParse->nTab = (int)local_d4;\n      }" { (expression_statement "local_f0 = (WhereInfo *)local_100->aCol;" (assignment_expression "local_f0 = (WhereInfo *)local_100->aCol" identifier = (cast_expression "(WhereInfo *)local_100->aCol" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_100->aCol" identifier -> field_identifier))) ;) (expression_statement "local_c4 = (sqlite3 *)local_100->nColumn;" (assignment_expression "local_c4 = (sqlite3 *)local_100->nColumn" identifier = (cast_expression "(sqlite3 *)local_100->nColumn" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_100->nColumn" identifier -> field_identifier))) ;) (expression_statement "pParse->nTab = (int)local_d4;" (assignment_expression "pParse->nTab = (int)local_d4" (field_expression "pParse->nTab" identifier -> field_identifier) = (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "puVar28 = PTR_LAB_000f52ec;" (assignment_expression "puVar28 = PTR_LAB_000f52ec" identifier = identifier) ;) (expression_statement "pTabList->a[0].iCursor = (int)local_f0;" (assignment_expression "pTabList->a[0].iCursor = (int)local_f0" (field_expression "pTabList->a[0].iCursor" (subscript_expression "pTabList->a[0]" (field_expression "pTabList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43);" (assignment_expression "piVar12 = (int *)(*(code *)(puVar28 + 0x6c00))(psVar43)" identifier = (cast_expression "(int *)(*(code *)(puVar28 + 0x6c00))(psVar43)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar28 + 0x6c00))(psVar43)" (parenthesized_expression "(*(code *)(puVar28 + 0x6c00))" ( (pointer_expression "*(code *)(puVar28 + 0x6c00)" * (cast_expression "(code *)(puVar28 + 0x6c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x6c00)" ( (binary_expression "puVar28 + 0x6c00" identifier + number_literal) )))) )) (argument_list "(psVar43)" ( identifier ))))) ;) (if_statement "if (piVar12 != (int *)0x0) break;" if (parenthesized_expression "(piVar12 != (int *)0x0)" ( (binary_expression "piVar12 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b7424:\n      pPVar26 = sContext.pParse;" statement_identifier : (expression_statement "pPVar26 = sContext.pParse;" (assignment_expression "pPVar26 = sContext.pParse" identifier = (field_expression "sContext.pParse" identifier . field_identifier)) ;)) (expression_statement "unaff_s5 = pParse;" (assignment_expression "unaff_s5 = pParse" identifier = identifier) ;) (if_statement "if (sContext.pParse != (Parse *)0x0) {\n        sContext.pParse = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\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 = (Parse *)0x0;\n        pPVar26->zAuthContext = sContext.zAuthContext;\n      }" { (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 "pPVar26->zAuthContext = sContext.zAuthContext;" (assignment_expression "pPVar26->zAuthContext = sContext.zAuthContext" (field_expression "pPVar26->zAuthContext" identifier -> field_identifier) = (field_expression "sContext.zAuthContext" identifier . field_identifier)) ;) })) })) (expression_statement "puVar33 = local_8c + 1;" (assignment_expression "puVar33 = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "piVar44 = piVar12 + unaff_s4->nCol;" (assignment_expression "piVar44 = piVar12 + unaff_s4->nCol" identifier = (binary_expression "piVar12 + unaff_s4->nCol" identifier + (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "piVar13 = piVar44 + (int)puVar33;" (assignment_expression "piVar13 = piVar44 + (int)puVar33" identifier = (binary_expression "piVar44 + (int)puVar33" identifier + (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);" (call_expression "(*(code *)PTR_memset_000f5450)(piVar13,1,puVar33)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar13,1,puVar33)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(undefined1 *)((int)piVar13 + (int)puVar33) = 0;" (assignment_expression "*(undefined1 *)((int)piVar13 + (int)puVar33) = 0" (pointer_expression "*(undefined1 *)((int)piVar13 + (int)puVar33)" * (cast_expression "(undefined1 *)((int)piVar13 + (int)puVar33)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (int)puVar33)" ( (binary_expression "(int)piVar13 + (int)puVar33" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = number_literal) ;) (expression_statement "sVar4 = unaff_s4->nCol;" (assignment_expression "sVar4 = unaff_s4->nCol" identifier = (field_expression "unaff_s4->nCol" identifier -> field_identifier)) ;) (if_statement "if (0 < sVar4) {\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }" if (parenthesized_expression "(0 < sVar4)" ( (binary_expression "0 < sVar4" number_literal < identifier) )) (compound_statement "{\n      piVar14 = piVar12;\n      do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);\n    }" { (expression_statement "piVar14 = piVar12;" (assignment_expression "piVar14 = piVar12" identifier = identifier) ;) (do_statement "do {\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      } while (piVar12 + sVar4 != piVar14);" do (compound_statement "{\n        *piVar14 = -1;\n        piVar14 = piVar14 + 1;\n      }" { (expression_statement "*piVar14 = -1;" (assignment_expression "*piVar14 = -1" (pointer_expression "*piVar14" * identifier) = number_literal) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar12 + sVar4 != piVar14)" ( (binary_expression "piVar12 + sVar4 != piVar14" (binary_expression "piVar12 + sVar4" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_f8 = (WhereInfo *)pParse->pVdbe;" (assignment_expression "local_f8 = (WhereInfo *)pParse->pVdbe" identifier = (cast_expression "(WhereInfo *)pParse->pVdbe" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->pVdbe" identifier -> field_identifier))) ;) (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.uNC.pAggInfo = local_100;" (assignment_expression "sNC.uNC.pAggInfo = local_100" (field_expression "sNC.uNC.pAggInfo" (field_expression "sNC.uNC" identifier . field_identifier) . field_identifier) = identifier) ;) (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.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.ncFlags = 0x200;" (assignment_expression "sNC.ncFlags = 0x200" (field_expression "sNC.ncFlags" identifier . field_identifier) = 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) ;) (if_statement "if (local_f8 == (WhereInfo *)0x0) {\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }" if (parenthesized_expression "(local_f8 == (WhereInfo *)0x0)" ( (binary_expression "local_f8 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);\n      pTVar48 = unaff_s4;\n      if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }\n    }" { (expression_statement "local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse);" (assignment_expression "local_f8 = (WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse)" identifier = (cast_expression "(WhereInfo *)(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x42ac))(pParse)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x42ac))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x42ac)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x42ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x42ac)" ( (binary_expression "PTR_DAT_000f52e8 + -0x42ac" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))))) ;) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_f8 != (WhereInfo *)0x0) {\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }" if (parenthesized_expression "(local_f8 != (WhereInfo *)0x0)" ( (binary_expression "local_f8 != (WhereInfo *)0x0" identifier != (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar15 = pChanges->nExpr;\n        goto LAB_000b7624;\n      }" { (expression_statement "iVar15 = pChanges->nExpr;" (assignment_expression "iVar15 = pChanges->nExpr" identifier = (field_expression "pChanges->nExpr" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000b7624;" goto statement_identifier ;) })) }) (else_clause "else {\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }" else (compound_statement "{\n      iVar15 = pChanges->nExpr;\nLAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;\n      puVar8 = PTR_yy_shift_ofst_376__000f52d4;\n      puVar28 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }\n      uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;\n      if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }\n      psVar35 = pParse->db;\n      iVar15 = -(uint)(unaff_s4->nModuleArg != 0);\n      pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      *(int *)&pTabList->a[0].colUsed = iVar15;\n      *(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;\n      iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);\n      if (onError == 5) {\n        bReplace = 1;\n      }\n      pIVar31 = unaff_s4->pIndex;\n      local_78 = piVar44;\n      if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }\n      iVar50 = pParse->nMem + 1;\n      pParse->nMem = iVar50;\n      *local_78 = iVar50;\n      if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }\n      if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);\n      iVar50 = unaff_s4->nModuleArg;\n      if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }\n      if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }\n    }" { (expression_statement "iVar15 = pChanges->nExpr;" (assignment_expression "iVar15 = pChanges->nExpr" identifier = (field_expression "pChanges->nExpr" identifier -> field_identifier)) ;) (labeled_statement "LAB_000b7624:\n      puVar9 = PTR_LAB_000f530c;" statement_identifier : (expression_statement "puVar9 = PTR_LAB_000f530c;" (assignment_expression "puVar9 = PTR_LAB_000f530c" identifier = identifier) ;)) (expression_statement "puVar8 = PTR_yy_shift_ofst_376__000f52d4;" (assignment_expression "puVar8 = PTR_yy_shift_ofst_376__000f52d4" identifier = identifier) ;) (expression_statement "puVar28 = PTR_LAB_000f52cc;" (assignment_expression "puVar28 = PTR_LAB_000f52cc" identifier = identifier) ;) (expression_statement "local_d8 = unaff_s3;" (assignment_expression "local_d8 = unaff_s3" identifier = identifier) ;) (if_statement "if (iVar15 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }\n      else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }" if (parenthesized_expression "(iVar15 < 1)" ( (binary_expression "iVar15 < 1" identifier < number_literal) )) (compound_statement "{\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (WhereInfo *)0xffffffff;" (assignment_expression "local_ac = (WhereInfo *)0xffffffff" identifier = (cast_expression "(WhereInfo *)0xffffffff" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }" else (compound_statement "{\n        pTVar48 = (Table *)pChanges->a;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (WhereInfo *)0xffffffff;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pWVar47 = (WhereInfo *)0x0;\n        do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);\n      }" { (expression_statement "pTVar48 = (Table *)pChanges->a;" (assignment_expression "pTVar48 = (Table *)pChanges->a" identifier = (cast_expression "(Table *)pChanges->a" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pChanges->a" identifier -> field_identifier))) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (WhereInfo *)0xffffffff;" (assignment_expression "local_ac = (WhereInfo *)0xffffffff" identifier = (cast_expression "(WhereInfo *)0xffffffff" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x514)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x514)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x514)" ( (binary_expression "PTR_LAB_000f52ec + 0x514" identifier + number_literal) )))) ;) (expression_statement "pWVar47 = (WhereInfo *)0x0;" (assignment_expression "pWVar47 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        } while ((int)pWVar47 < pChanges->nExpr);" do (compound_statement "{\n          unaff_s3 = pWVar47;\n          if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;\n          iVar15 = (int)unaff_s4->nCol;\n          pCVar41 = pTVar48->aCol;\n          if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }\nLAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)pTVar48->zName;\n          iVar50 = -1;\n          pcVar38 = unaff_s4->zName;\n          local_d8 = (WhereInfo *)0x1;\n          pbVar39 = puVar28 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);\n          if (iVar15 == 1) goto LAB_000b7aa8;\n          if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }\n          pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);\n          pTVar48 = (Table *)&pTVar48->pFKey;\n        }" { (expression_statement "unaff_s3 = pWVar47;" (assignment_expression "unaff_s3 = pWVar47" identifier = identifier) ;) (if_statement "if ((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))\n          goto LAB_000b7aa8;" if (parenthesized_expression "((pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0))" ( (binary_expression "(pWVar46 == (WhereInfo *)0x0) &&\n             (iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0)" (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0)" ( (comma_expression "iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName), iVar15 != 0" (assignment_expression "iVar15 = (*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName)" identifier = (call_expression "(*(code *)(puVar9 + -0x562c))(&sNC,pTVar48->zName)" (parenthesized_expression "(*(code *)(puVar9 + -0x562c))" ( (pointer_expression "*(code *)(puVar9 + -0x562c)" * (cast_expression "(code *)(puVar9 + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + -0x562c)" ( (binary_expression "puVar9 + -0x562c" identifier + number_literal) )))) )) (argument_list "(&sNC,pTVar48->zName)" ( (pointer_expression "&sNC" & identifier) , (field_expression "pTVar48->zName" identifier -> field_identifier) )))) , (binary_expression "iVar15 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar15 = (int)unaff_s4->nCol;" (assignment_expression "iVar15 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "pCVar41 = pTVar48->aCol;" (assignment_expression "pCVar41 = pTVar48->aCol" identifier = (field_expression "pTVar48->aCol" identifier -> field_identifier)) ;) (if_statement "if (0 < iVar15) {\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }" if (parenthesized_expression "(0 < iVar15)" ( (binary_expression "0 < iVar15" number_literal < identifier) )) (compound_statement "{\n            pCVar42 = unaff_s4->aCol;\n            iVar50 = 0;\n            do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);\n          }" { (expression_statement "pCVar42 = unaff_s4->aCol;" (assignment_expression "pCVar42 = unaff_s4->aCol" identifier = (field_expression "unaff_s4->aCol" identifier -> field_identifier)) ;) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (do_statement "do {\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            } while (iVar50 != iVar15);" do (compound_statement "{\n              pbVar39 = (byte *)pCVar42->zName;\n              uVar30 = (uint)*(byte *)&pCVar41->zName;\n              uVar17 = (uint)*pbVar39;\n              pbVar34 = pbVar39;\n              pCVar37 = pCVar41;\n              if (uVar17 == uVar30) goto LAB_000b76e8;\n              while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar50 = iVar50 + 1;\n              pCVar42 = pCVar42 + 1;\n            }" { (expression_statement "pbVar39 = (byte *)pCVar42->zName;" (assignment_expression "pbVar39 = (byte *)pCVar42->zName" identifier = (cast_expression "(byte *)pCVar42->zName" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pCVar42->zName" identifier -> field_identifier))) ;) (expression_statement "uVar30 = (uint)*(byte *)&pCVar41->zName;" (assignment_expression "uVar30 = (uint)*(byte *)&pCVar41->zName" identifier = (binary_expression "(uint)*(byte *)&pCVar41->zName" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)&pCVar41->zName" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pCVar41->zName" & (field_expression "pCVar41->zName" identifier -> field_identifier))))) ;) (expression_statement "uVar17 = (uint)*pbVar39;" (assignment_expression "uVar17 = (uint)*pbVar39" identifier = (binary_expression "(uint)*pbVar39" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar34 = pbVar39;" (assignment_expression "pbVar34 = pbVar39" identifier = identifier) ;) (expression_statement "pCVar37 = pCVar41;" (assignment_expression "pCVar37 = pCVar41" identifier = identifier) ;) (if_statement "if (uVar17 == uVar30) goto LAB_000b76e8;" if (parenthesized_expression "(uVar17 == uVar30)" ( (binary_expression "uVar17 == uVar30" identifier == identifier) )) (goto_statement "goto LAB_000b76e8;" goto statement_identifier ;)) (while_statement "while (puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]) {\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" while (parenthesized_expression "(puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac])" ( (binary_expression "puVar8[uVar17 + 0x25ac] == puVar8[uVar30 + 0x25ac]" (subscript_expression "puVar8[uVar17 + 0x25ac]" identifier [ (binary_expression "uVar17 + 0x25ac" identifier + number_literal) ]) == (subscript_expression "puVar8[uVar30 + 0x25ac]" identifier [ (binary_expression "uVar30 + 0x25ac" identifier + number_literal) ])) )) (compound_statement "{\n                while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" { (while_statement "while( true ) {\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  pbVar34 = pbVar34 + 1;\n                  uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);\n                  uVar17 = (uint)*pbVar34;\n                  pCVar37 = (Column *)((int)&pCVar37->zName + 1);\n                  if (uVar17 != uVar30) break;\nLAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }\n                }" { (expression_statement "pbVar34 = pbVar34 + 1;" (assignment_expression "pbVar34 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;) (expression_statement "uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1);" (assignment_expression "uVar30 = (uint)*(byte *)((int)&pCVar37->zName + 1)" identifier = (binary_expression "(uint)*(byte *)((int)&pCVar37->zName + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)&pCVar37->zName + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar37->zName + 1)" ( (binary_expression "(int)&pCVar37->zName + 1" (cast_expression "(int)&pCVar37->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar37->zName" & (field_expression "pCVar37->zName" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "uVar17 = (uint)*pbVar34;" (assignment_expression "uVar17 = (uint)*pbVar34" identifier = (binary_expression "(uint)*pbVar34" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pCVar37 = (Column *)((int)&pCVar37->zName + 1);" (assignment_expression "pCVar37 = (Column *)((int)&pCVar37->zName + 1)" identifier = (cast_expression "(Column *)((int)&pCVar37->zName + 1)" ( (type_descriptor "Column *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pCVar37->zName + 1)" ( (binary_expression "(int)&pCVar37->zName + 1" (cast_expression "(int)&pCVar37->zName" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pCVar37->zName" & (field_expression "pCVar37->zName" identifier -> field_identifier))) + number_literal) )))) ;) (if_statement "if (uVar17 != uVar30) break;" if (parenthesized_expression "(uVar17 != uVar30)" ( (binary_expression "uVar17 != uVar30" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b76e8:\n                  if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }" statement_identifier : (if_statement "if (uVar17 == 0) {\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar12[iVar50] = (int)unaff_s3;\n                    if (iVar15 <= iVar50) goto LAB_000b7748;\n                    pcVar38 = unaff_s4->zName;\n                    goto LAB_000b7790;\n                  }" { (if_statement "if (unaff_s4->iPKey == iVar50) {\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }" if (parenthesized_expression "(unaff_s4->iPKey == iVar50)" ( (binary_expression "unaff_s4->iPKey == iVar50" (field_expression "unaff_s4->iPKey" identifier -> field_identifier) == identifier) )) (compound_statement "{\n                      local_b4 = (code *)pTVar48->zName;\n                      local_d8 = (WhereInfo *)0x1;\n                      local_ac = unaff_s3;\n                    }" { (expression_statement "local_b4 = (code *)pTVar48->zName;" (assignment_expression "local_b4 = (code *)pTVar48->zName" identifier = (cast_expression "(code *)pTVar48->zName" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar48->zName" identifier -> field_identifier))) ;) (expression_statement "local_d8 = (WhereInfo *)0x1;" (assignment_expression "local_d8 = (WhereInfo *)0x1" identifier = (cast_expression "(WhereInfo *)0x1" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) }) (else_clause "else {\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }" else (compound_statement "{\n                      if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }\n                    }" { (if_statement "if ((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)) {\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" if (parenthesized_expression "((local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0))" ( (binary_expression "(local_ec != (Index *)0x0) && ((pCVar42->colFlags & 1) != 0)" (parenthesized_expression "(local_ec != (Index *)0x0)" ( (binary_expression "local_ec != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((pCVar42->colFlags & 1) != 0)" ( (binary_expression "(pCVar42->colFlags & 1) != 0" (parenthesized_expression "(pCVar42->colFlags & 1)" ( (binary_expression "pCVar42->colFlags & 1" (field_expression "pCVar42->colFlags" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                        piVar12[iVar50] = (int)unaff_s3;\n                        if (iVar15 <= iVar50) goto LAB_000b7e5c;\n                        pcVar38 = unaff_s4->zName;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" { (expression_statement "piVar12[iVar50] = (int)unaff_s3;" (assignment_expression "piVar12[iVar50] = (int)unaff_s3" (subscript_expression "piVar12[iVar50]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar15 <= iVar50) goto LAB_000b7e5c;" if (parenthesized_expression "(iVar15 <= iVar50)" ( (binary_expression "iVar15 <= iVar50" identifier <= identifier) )) (goto_statement "goto LAB_000b7e5c;" goto statement_identifier ;)) (expression_statement "pcVar38 = unaff_s4->zName;" (assignment_expression "pcVar38 = unaff_s4->zName" identifier = (field_expression "unaff_s4->zName" identifier -> field_identifier)) ;) (expression_statement "local_84 = 1;" (assignment_expression "local_84 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) })) (if_statement "if ((pCVar42->colFlags & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }" if (parenthesized_expression "((pCVar42->colFlags & 0x60) != 0)" ( (binary_expression "(pCVar42->colFlags & 0x60) != 0" (parenthesized_expression "(pCVar42->colFlags & 0x60)" ( (binary_expression "pCVar42->colFlags & 0x60" (field_expression "pCVar42->colFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);\n                        goto LAB_000b7aa8;\n                      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6824,pbVar39)" ( identifier , (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + -0x6824" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) })) }))) (expression_statement "piVar12[iVar50] = (int)unaff_s3;" (assignment_expression "piVar12[iVar50] = (int)unaff_s3" (subscript_expression "piVar12[iVar50]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar15 <= iVar50) goto LAB_000b7748;" if (parenthesized_expression "(iVar15 <= iVar50)" ( (binary_expression "iVar15 <= iVar50" identifier <= identifier) )) (goto_statement "goto LAB_000b7748;" goto statement_identifier ;)) (expression_statement "pcVar38 = unaff_s4->zName;" (assignment_expression "pcVar38 = unaff_s4->zName" identifier = (field_expression "unaff_s4->zName" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) }))) })) })) (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "pCVar42 = pCVar42 + 1;" (assignment_expression "pCVar42 = pCVar42 + 1" identifier = (binary_expression "pCVar42 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar50 != iVar15)" ( (binary_expression "iVar50 != iVar15" identifier != identifier) )) ;) })) (labeled_statement "LAB_000b7748:\n          if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }" statement_identifier : (if_statement "if ((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }" if (parenthesized_expression "((local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0))" ( (binary_expression "(local_ec != (Index *)0x0) || (iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)" (parenthesized_expression "(local_ec != (Index *)0x0)" ( (binary_expression "local_ec != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar15 = (*pcVar16)(pCVar41), iVar15 == 0)" ( (comma_expression "iVar15 = (*pcVar16)(pCVar41), iVar15 == 0" (assignment_expression "iVar15 = (*pcVar16)(pCVar41)" identifier = (call_expression "(*pcVar16)(pCVar41)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pCVar41)" ( identifier )))) , (binary_expression "iVar15 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);\n            pParse->checkSchema = '\x01';\n            goto LAB_000b7aa8;\n          }" { (labeled_statement "LAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                      (pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(pParse,PTR_yy_shift_ofst_376__000f52d4 + -0x6800,pCVar41)" ( identifier , (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + -0x6800" identifier + number_literal) , identifier ))) ;)) (expression_statement "pParse->checkSchema = '\x01';" (assignment_expression "pParse->checkSchema = '\x01'" (field_expression "pParse->checkSchema" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) }))) (expression_statement "local_b4 = (code *)pTVar48->zName;" (assignment_expression "local_b4 = (code *)pTVar48->zName" identifier = (cast_expression "(code *)pTVar48->zName" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pTVar48->zName" identifier -> field_identifier))) ;) (expression_statement "iVar50 = -1;" (assignment_expression "iVar50 = -1" identifier = number_literal) ;) (expression_statement "pcVar38 = unaff_s4->zName;" (assignment_expression "pcVar38 = unaff_s4->zName" identifier = (field_expression "unaff_s4->zName" identifier -> field_identifier)) ;) (expression_statement "local_d8 = (WhereInfo *)0x1;" (assignment_expression "local_d8 = (WhereInfo *)0x1" identifier = (cast_expression "(WhereInfo *)0x1" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar39 = puVar28 + 0x7028;" (assignment_expression "pbVar39 = puVar28 + 0x7028" identifier = (binary_expression "puVar28 + 0x7028" identifier + number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) (labeled_statement "LAB_000b7790:\n          iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);" statement_identifier : (expression_statement "iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName);" (assignment_expression "iVar15 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName)" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x5ce4)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x5ce4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x5ce4)" ( (binary_expression "PTR_LAB_000f530c + -0x5ce4" identifier + number_literal) )))) )) (argument_list "(pParse,0x17,pcVar38,pbVar39,psVar43->aDb[(int)local_e0].zDbSName)" ( identifier , number_literal , identifier , identifier , (field_expression "psVar43->aDb[(int)local_e0].zDbSName" (subscript_expression "psVar43->aDb[(int)local_e0]" (field_expression "psVar43->aDb" identifier -> field_identifier) [ (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) ]) . field_identifier) )))) ;)) (if_statement "if (iVar15 == 1) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar15 == 1)" ( (binary_expression "iVar15 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (if_statement "if (iVar15 == 2) {\n            piVar12[iVar50] = -1;\n          }" if (parenthesized_expression "(iVar15 == 2)" ( (binary_expression "iVar15 == 2" identifier == number_literal) )) (compound_statement "{\n            piVar12[iVar50] = -1;\n          }" { (expression_statement "piVar12[iVar50] = -1;" (assignment_expression "piVar12[iVar50] = -1" (subscript_expression "piVar12[iVar50]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1);" (assignment_expression "pWVar47 = (WhereInfo *)((int)&unaff_s3->pParse + 1)" identifier = (cast_expression "(WhereInfo *)((int)&unaff_s3->pParse + 1)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s3->pParse + 1)" ( (binary_expression "(int)&unaff_s3->pParse + 1" (cast_expression "(int)&unaff_s3->pParse" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s3->pParse" & (field_expression "unaff_s3->pParse" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pTVar48 = (Table *)&pTVar48->pFKey;" (assignment_expression "pTVar48 = (Table *)&pTVar48->pFKey" identifier = (cast_expression "(Table *)&pTVar48->pFKey" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTVar48->pFKey" & (field_expression "pTVar48->pFKey" identifier -> field_identifier)))) ;) }) while (parenthesized_expression "((int)pWVar47 < pChanges->nExpr)" ( (binary_expression "(int)pWVar47 < pChanges->nExpr" (cast_expression "(int)pWVar47" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "pChanges->nExpr" identifier -> field_identifier)) )) ;) }))) (expression_statement "uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff;" (assignment_expression "uVar17 = (int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff" identifier = (binary_expression "(int)local_d8->aiCurOnePass + local_84 + -0x14 & 0xff" (binary_expression "(int)local_d8->aiCurOnePass + local_84 + -0x14" (binary_expression "(int)local_d8->aiCurOnePass + local_84" (cast_expression "(int)local_d8->aiCurOnePass" ( (type_descriptor "int" primitive_type) ) (field_expression "local_d8->aiCurOnePass" identifier -> field_identifier)) + identifier) + number_literal) & number_literal)) ;) (if_statement "if ((unaff_s4->tabFlags & 0x60) != 0) {\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }" if (parenthesized_expression "((unaff_s4->tabFlags & 0x60) != 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x60) != 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x60)" ( (binary_expression "unaff_s4->tabFlags & 0x60" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar15 = (int)unaff_s4->nCol;\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);\n      }" { (expression_statement "iVar15 = (int)unaff_s4->nCol;" (assignment_expression "iVar15 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (do_statement "do {\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        } while (bVar6);" do (compound_statement "{\n          if (iVar15 < 1) break;\n          bVar6 = false;\n          iVar50 = 0;\n          piVar14 = piVar12;\n          do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);\n        }" { (if_statement "if (iVar15 < 1) break;" if (parenthesized_expression "(iVar15 < 1)" ( (binary_expression "iVar15 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piVar12;" (assignment_expression "piVar14 = piVar12" identifier = identifier) ;) (do_statement "do {\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          } while (iVar50 < iVar15);" do (compound_statement "{\n            if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }\n            iVar50 = iVar50 + 1;\n            piVar14 = piVar14 + 1;\n          }" { (if_statement "if ((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)) {\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }" if (parenthesized_expression "((*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0))" ( (binary_expression "(*piVar14 < 0) && ((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)" (parenthesized_expression "(*piVar14 < 0)" ( (binary_expression "*piVar14 < 0" (pointer_expression "*piVar14" * identifier) < number_literal) )) && (parenthesized_expression "((unaff_s4->aCol[iVar50].colFlags & 0x60) != 0)" ( (binary_expression "(unaff_s4->aCol[iVar50].colFlags & 0x60) != 0" (parenthesized_expression "(unaff_s4->aCol[iVar50].colFlags & 0x60)" ( (binary_expression "unaff_s4->aCol[iVar50].colFlags & 0x60" (field_expression "unaff_s4->aCol[iVar50].colFlags" (subscript_expression "unaff_s4->aCol[iVar50]" (field_expression "unaff_s4->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n              iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);\n              iVar15 = (int)unaff_s4->nCol;\n              if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }\n            }" { (expression_statement "iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8);" (assignment_expression "iVar18 = (*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8)" identifier = (call_expression "(*pcVar16)(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(unaff_s4->aCol[iVar50].pDflt,piVar12,local_d8)" ( (field_expression "unaff_s4->aCol[iVar50].pDflt" (subscript_expression "unaff_s4->aCol[iVar50]" (field_expression "unaff_s4->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier) , identifier , identifier )))) ;) (expression_statement "iVar15 = (int)unaff_s4->nCol;" (assignment_expression "iVar15 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (if_statement "if (iVar18 != 0) {\n                bVar6 = true;\n                *piVar14 = 99999;\n              }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                bVar6 = true;\n                *piVar14 = 99999;\n              }" { (expression_statement "bVar6 = true;" (assignment_expression "bVar6 = true" identifier = true) ;) (expression_statement "*piVar14 = 99999;" (assignment_expression "*piVar14 = 99999" (pointer_expression "*piVar14" * identifier) = number_literal) ;) })) })) (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar50 < iVar15)" ( (binary_expression "iVar50 < iVar15" identifier < identifier) )) ;) }) while (parenthesized_expression "(bVar6)" ( identifier )) ;) })) (expression_statement "psVar35 = pParse->db;" (assignment_expression "psVar35 = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (expression_statement "iVar15 = -(uint)(unaff_s4->nModuleArg != 0);" (assignment_expression "iVar15 = -(uint)(unaff_s4->nModuleArg != 0)" identifier = (unary_expression "-(uint)(unaff_s4->nModuleArg != 0)" - (call_expression "(uint)(unaff_s4->nModuleArg != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s4->nModuleArg != 0)" ( (binary_expression "unaff_s4->nModuleArg != 0" (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier) != number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x1208)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1208)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1208)" ( (binary_expression "PTR_LAB_000f52ec + 0x1208" identifier + number_literal) )))) ;) (expression_statement "*(int *)&pTabList->a[0].colUsed = iVar15;" (assignment_expression "*(int *)&pTabList->a[0].colUsed = iVar15" (pointer_expression "*(int *)&pTabList->a[0].colUsed" * (cast_expression "(int *)&pTabList->a[0].colUsed" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pTabList->a[0].colUsed" & (field_expression "pTabList->a[0].colUsed" (subscript_expression "pTabList->a[0]" (field_expression "pTabList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)))) = identifier) ;) (expression_statement "*(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15;" (assignment_expression "*(int *)((int)&pTabList->a[0].colUsed + 4) = iVar15" (pointer_expression "*(int *)((int)&pTabList->a[0].colUsed + 4)" * (cast_expression "(int *)((int)&pTabList->a[0].colUsed + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pTabList->a[0].colUsed + 4)" ( (binary_expression "(int)&pTabList->a[0].colUsed + 4" (cast_expression "(int)&pTabList->a[0].colUsed" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pTabList->a[0].colUsed" & (field_expression "pTabList->a[0].colUsed" (subscript_expression "pTabList->a[0]" (field_expression "pTabList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17);" (assignment_expression "iVar15 = (*pcVar16)(psVar35,unaff_s4,piVar12,uVar17)" identifier = (call_expression "(*pcVar16)(psVar35,unaff_s4,piVar12,uVar17)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(psVar35,unaff_s4,piVar12,uVar17)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (onError == 5) {\n        bReplace = 1;\n      }" if (parenthesized_expression "(onError == 5)" ( (binary_expression "onError == 5" identifier == number_literal) )) (compound_statement "{\n        bReplace = 1;\n      }" { (expression_statement "bReplace = 1;" (assignment_expression "bReplace = 1" identifier = number_literal) ;) })) (expression_statement "pIVar31 = unaff_s4->pIndex;" (assignment_expression "pIVar31 = unaff_s4->pIndex" identifier = (field_expression "unaff_s4->pIndex" identifier -> field_identifier)) ;) (expression_statement "local_78 = piVar44;" (assignment_expression "local_78 = piVar44" identifier = identifier) ;) (if_statement "if (pIVar31 != (Index *)0x0) {\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }" if (parenthesized_expression "(pIVar31 != (Index *)0x0)" ( (binary_expression "pIVar31 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar50 = 0;\n        piVar14 = piVar44;\n        do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);\n        local_78 = piVar44 + iVar50;\n      }" { (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (expression_statement "piVar14 = piVar44;" (assignment_expression "piVar14 = piVar44" identifier = identifier) ;) (do_statement "do {\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        } while (pIVar31 != (Index *)0x0);" do (compound_statement "{\n          if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }\n          pIVar31 = pIVar31->pNext;\n          iVar50 = iVar50 + 1;\n          *piVar14 = iVar18;\n          piVar14 = piVar14 + 1;\n        }" { (if_statement "if ((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))) {\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }\n          else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }" if (parenthesized_expression "((((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0))))" ( (binary_expression "(((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)) &&\n             ((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))" (parenthesized_expression "(((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec))" ( (binary_expression "((uVar17 == 0) && (iVar15 < 2)) && (pIVar31 != local_ec)" (parenthesized_expression "((uVar17 == 0) && (iVar15 < 2))" ( (binary_expression "(uVar17 == 0) && (iVar15 < 2)" (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar15 < 2)" ( (binary_expression "iVar15 < 2" identifier < number_literal) ))) )) && (parenthesized_expression "(pIVar31 != local_ec)" ( (binary_expression "pIVar31 != local_ec" identifier != identifier) ))) )) && (parenthesized_expression "((pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)))" ( (parenthesized_expression "(pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0))" ( (binary_expression "pIVar31->pPartIdxWhere == (Expr *)0x0 ||\n              (iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)" (binary_expression "pIVar31->pPartIdxWhere == (Expr *)0x0" (field_expression "pIVar31->pPartIdxWhere" identifier -> field_identifier) == (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0)" ( (comma_expression "iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8), iVar18 == 0" (assignment_expression "iVar18 = (*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8)" identifier = (call_expression "(*pcVar16)(pIVar31->pPartIdxWhere,piVar12,local_d8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pIVar31->pPartIdxWhere,piVar12,local_d8)" ( (field_expression "pIVar31->pPartIdxWhere" identifier -> field_identifier) , identifier , identifier )))) , (binary_expression "iVar18 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar18 = 0;\n            if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }\nLAB_000b79c4:\n            iVar18 = 0;\n            *(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;\n          }" { (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (if_statement "if (pIVar31->nKeyCol != 0) {\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }" if (parenthesized_expression "(pIVar31->nKeyCol != 0)" ( (binary_expression "pIVar31->nKeyCol != 0" (field_expression "pIVar31->nKeyCol" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);\n            }" { (do_statement "do {\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar18 < (int)(uint)pIVar31->nKeyCol);" do (compound_statement "{\n                if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }\n                iVar18 = iVar18 + 1;\n                if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              }" { (if_statement "if (pIVar31->aiColumn[iVar18] < 0) {\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }\n                else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }" if (parenthesized_expression "(pIVar31->aiColumn[iVar18] < 0)" ( (binary_expression "pIVar31->aiColumn[iVar18] < 0" (subscript_expression "pIVar31->aiColumn[iVar18]" (field_expression "pIVar31->aiColumn" identifier -> field_identifier) [ identifier ]) < number_literal) )) (compound_statement "{\n                  uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);\n                }" { (expression_statement "uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8);" (assignment_expression "uVar30 = (*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8)" identifier = (call_expression "(*pcVar16)(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pIVar31->aColExpr->a[iVar18].pExpr,piVar12,local_d8)" ( (field_expression "pIVar31->aColExpr->a[iVar18].pExpr" (subscript_expression "pIVar31->aColExpr->a[iVar18]" (field_expression "pIVar31->aColExpr->a" (field_expression "pIVar31->aColExpr" identifier -> field_identifier) -> field_identifier) [ identifier ]) . field_identifier) , identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }" else (compound_statement "{\n                  uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;\n                }" { (expression_statement "uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f;" (assignment_expression "uVar30 = (uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f" identifier = (binary_expression "(uint)~piVar12[pIVar31->aiColumn[iVar18]] >> 0x1f" (cast_expression "(uint)~piVar12[pIVar31->aiColumn[iVar18]]" ( (type_descriptor "uint" type_identifier) ) (unary_expression "~piVar12[pIVar31->aiColumn[iVar18]]" ~ (subscript_expression "piVar12[pIVar31->aiColumn[iVar18]]" identifier [ (subscript_expression "pIVar31->aiColumn[iVar18]" (field_expression "pIVar31->aiColumn" identifier -> field_identifier) [ identifier ]) ]))) >> number_literal)) ;) }))) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (uVar30 != 0) {\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" if (parenthesized_expression "(uVar30 != 0)" ( (binary_expression "uVar30 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar18 = pParse->nMem + 1;\n                  pParse->nMem = (uint)pIVar31->nColumn + iVar18;\n                  if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" { (expression_statement "iVar18 = pParse->nMem + 1;" (assignment_expression "iVar18 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = (uint)pIVar31->nColumn + iVar18;" (assignment_expression "pParse->nMem = (uint)pIVar31->nColumn + iVar18" (field_expression "pParse->nMem" identifier -> field_identifier) = (binary_expression "(uint)pIVar31->nColumn + iVar18" (cast_expression "(uint)pIVar31->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar31->nColumn" identifier -> field_identifier)) + identifier)) ;) (if_statement "if ((onError == 0xb) && (pIVar31->onError == '\x05')) {\n                    bReplace = 1;\n                  }" if (parenthesized_expression "((onError == 0xb) && (pIVar31->onError == '\x05'))" ( (binary_expression "(onError == 0xb) && (pIVar31->onError == '\x05')" (parenthesized_expression "(onError == 0xb)" ( (binary_expression "onError == 0xb" identifier == number_literal) )) && (parenthesized_expression "(pIVar31->onError == '\x05')" ( (binary_expression "pIVar31->onError == '\x05'" (field_expression "pIVar31->onError" identifier -> field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    bReplace = 1;\n                  }" { (expression_statement "bReplace = 1;" (assignment_expression "bReplace = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_000b79b4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar18 < (int)(uint)pIVar31->nKeyCol)" ( (binary_expression "iVar18 < (int)(uint)pIVar31->nKeyCol" identifier < (cast_expression "(int)(uint)pIVar31->nKeyCol" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)pIVar31->nKeyCol" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar31->nKeyCol" identifier -> field_identifier)))) )) ;) })) (labeled_statement "LAB_000b79c4:\n            iVar18 = 0;" statement_identifier : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;)) (expression_statement "*(undefined1 *)((int)piVar13 + iVar50 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)piVar13 + iVar50 + 1) = 0" (pointer_expression "*(undefined1 *)((int)piVar13 + iVar50 + 1)" * (cast_expression "(undefined1 *)((int)piVar13 + iVar50 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + iVar50 + 1)" ( (binary_expression "(int)piVar13 + iVar50 + 1" (binary_expression "(int)piVar13 + iVar50" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }" else (compound_statement "{\n            iVar18 = pParse->nMem + 1;\n            pParse->nMem = (uint)pIVar31->nColumn + iVar18;\nLAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;\n          }" { (expression_statement "iVar18 = pParse->nMem + 1;" (assignment_expression "iVar18 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = (uint)pIVar31->nColumn + iVar18;" (assignment_expression "pParse->nMem = (uint)pIVar31->nColumn + iVar18" (field_expression "pParse->nMem" identifier -> field_identifier) = (binary_expression "(uint)pIVar31->nColumn + iVar18" (cast_expression "(uint)pIVar31->nColumn" ( (type_descriptor "uint" type_identifier) ) (field_expression "pIVar31->nColumn" identifier -> field_identifier)) + identifier)) ;) (labeled_statement "LAB_000b79b4:\n            if (iVar18 == 0) goto LAB_000b79c4;" statement_identifier : (if_statement "if (iVar18 == 0) goto LAB_000b79c4;" if (parenthesized_expression "(iVar18 == 0)" ( (binary_expression "iVar18 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b79c4;" goto statement_identifier ;))) }))) (expression_statement "pIVar31 = pIVar31->pNext;" (assignment_expression "pIVar31 = pIVar31->pNext" identifier = (field_expression "pIVar31->pNext" identifier -> field_identifier)) ;) (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "*piVar14 = iVar18;" (assignment_expression "*piVar14 = iVar18" (pointer_expression "*piVar14" * identifier) = identifier) ;) (expression_statement "piVar14 = piVar14 + 1;" (assignment_expression "piVar14 = piVar14 + 1" identifier = (binary_expression "piVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pIVar31 != (Index *)0x0)" ( (binary_expression "pIVar31 != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_78 = piVar44 + iVar50;" (assignment_expression "local_78 = piVar44 + iVar50" identifier = (binary_expression "piVar44 + iVar50" identifier + identifier)) ;) })) (expression_statement "iVar50 = pParse->nMem + 1;" (assignment_expression "iVar50 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pParse->nMem = iVar50;" (assignment_expression "pParse->nMem = iVar50" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "*local_78 = iVar50;" (assignment_expression "*local_78 = iVar50" (pointer_expression "*local_78" * identifier) = identifier) ;) (if_statement "if (bReplace != 0) {\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }" if (parenthesized_expression "(bReplace != 0)" ( (binary_expression "bReplace != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);\n      }" { (expression_statement "(*(code *)PTR_memset_000f5450)(piVar13,1,puVar33);" (call_expression "(*(code *)PTR_memset_000f5450)(piVar13,1,puVar33)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar13,1,puVar33)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (pParse->nested == '\0') {\n        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\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        *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;\n      }" { (expression_statement "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;" (assignment_expression "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) =\n             *(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800" (pointer_expression "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2)" * (cast_expression "(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_f8->sWC).aStatic[1].pWC + 2)" ( (binary_expression "(int)&(local_f8->sWC).aStatic[1].pWC + 2" (cast_expression "(int)&(local_f8->sWC).aStatic[1].pWC" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_f8->sWC).aStatic[1].pWC" & (field_expression "(local_f8->sWC).aStatic[1].pWC" (subscript_expression "(local_f8->sWC).aStatic[1]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) = (binary_expression "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800" (binary_expression "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2) & 0xf7ff" (pointer_expression "*(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2)" * (cast_expression "(ushort *)((int)&(local_f8->sWC).aStatic[1].pWC + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(local_f8->sWC).aStatic[1].pWC + 2)" ( (binary_expression "(int)&(local_f8->sWC).aStatic[1].pWC + 2" (cast_expression "(int)&(local_f8->sWC).aStatic[1].pWC" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(local_f8->sWC).aStatic[1].pWC" & (field_expression "(local_f8->sWC).aStatic[1].pWC" (subscript_expression "(local_f8->sWC).aStatic[1]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))) + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + -0x5698)" * (cast_expression "(code *)(PTR_LAB_000f5308 + -0x5698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + -0x5698)" ( (binary_expression "PTR_LAB_000f5308 + -0x5698" identifier + number_literal) )))) )) (argument_list "(pParse,local_e4 != (Schema *)0x0 || iVar15 != 0,local_e0)" ( identifier , (binary_expression "local_e4 != (Schema *)0x0 || iVar15 != 0" (binary_expression "local_e4 != (Schema *)0x0" identifier != (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "iVar15 != 0" identifier != number_literal)) , identifier ))) ;) (expression_statement "iVar50 = unaff_s4->nModuleArg;" (assignment_expression "iVar50 = unaff_s4->nModuleArg" identifier = (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier)) ;) (if_statement "if (iVar50 == 0) {\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }" if (parenthesized_expression "(iVar50 == 0)" ( (binary_expression "iVar50 == 0" identifier == number_literal) )) (compound_statement "{\n        local_94 = pParse->nMem;\n        local_80 = *local_78;\n        local_e0 = (sqlite3 *)(local_94 + 1);\n        iVar18 = (int)unaff_s4->nCol;\n        pParse->nMem = (int)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);\n        pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);\n      }" { (expression_statement "local_94 = pParse->nMem;" (assignment_expression "local_94 = pParse->nMem" identifier = (field_expression "pParse->nMem" identifier -> field_identifier)) ;) (expression_statement "local_80 = *local_78;" (assignment_expression "local_80 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "local_e0 = (sqlite3 *)(local_94 + 1);" (assignment_expression "local_e0 = (sqlite3 *)(local_94 + 1)" identifier = (cast_expression "(sqlite3 *)(local_94 + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_94 + 1)" ( (binary_expression "local_94 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar18 = (int)unaff_s4->nCol;" (assignment_expression "iVar18 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "pParse->nMem = (int)local_e0;" (assignment_expression "pParse->nMem = (int)local_e0" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_c8 = local_e0;" (assignment_expression "local_c8 = local_e0" identifier = identifier) ;) (if_statement "if (local_84 == 0) {\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }\n        else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }\nLAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n          pParse->nMem = (int)local_c8;\n          psVar35 = local_c8;\n        }" { (if_statement "if ((local_e4 == (Schema *)0x0) && (iVar15 == 0)) {\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }" if (parenthesized_expression "((local_e4 == (Schema *)0x0) && (iVar15 == 0))" ( (binary_expression "(local_e4 == (Schema *)0x0) && (iVar15 == 0)" (parenthesized_expression "(local_e4 == (Schema *)0x0)" ( (binary_expression "local_e4 == (Schema *)0x0" identifier == (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_94 = 0;\n            psVar35 = local_e0;\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;\n          }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "psVar35 = local_e0;" (assignment_expression "psVar35 = local_e0" identifier = identifier) ;) (if_statement "if (local_d8 == (WhereInfo *)0x0) goto LAB_000b7c48;" if (parenthesized_expression "(local_d8 == (WhereInfo *)0x0)" ( (binary_expression "local_d8 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7c48;" goto statement_identifier ;)) }) (else_clause "else {\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }" else (compound_statement "{\n            local_94 = local_94 + 2;\n            psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n            pParse->nMem = (int)psVar35;\n          }" { (expression_statement "local_94 = local_94 + 2;" (assignment_expression "local_94 = local_94 + 2" identifier = (binary_expression "local_94 + 2" identifier + number_literal)) ;) (expression_statement "psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);" (assignment_expression "psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18)" identifier = (cast_expression "(sqlite3 *)((int)&local_e0->pVfs + iVar18)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + iVar18)" ( (binary_expression "(int)&local_e0->pVfs + iVar18" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "pParse->nMem = (int)psVar35;" (assignment_expression "pParse->nMem = (int)psVar35" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (labeled_statement "LAB_000b7c3c:\n          local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);" statement_identifier : (expression_statement "local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1);" (assignment_expression "local_c8 = (sqlite3 *)((int)&psVar35->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&psVar35->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar35->pVfs + 1)" ( (binary_expression "(int)&psVar35->pVfs + 1" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "pParse->nMem = (int)local_c8;" (assignment_expression "pParse->nMem = (int)local_c8" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)local_c8" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "psVar35 = local_c8;" (assignment_expression "psVar35 = local_c8" identifier = identifier) ;) }) (else_clause "else {\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }" else (compound_statement "{\n          local_94 = local_94 + 2;\n          psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);\n          pParse->nMem = (int)psVar35;\n          if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;\n        }" { (expression_statement "local_94 = local_94 + 2;" (assignment_expression "local_94 = local_94 + 2" identifier = (binary_expression "local_94 + 2" identifier + number_literal)) ;) (expression_statement "psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18);" (assignment_expression "psVar35 = (sqlite3 *)((int)&local_e0->pVfs + iVar18)" identifier = (cast_expression "(sqlite3 *)((int)&local_e0->pVfs + iVar18)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + iVar18)" ( (binary_expression "(int)&local_e0->pVfs + iVar18" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "pParse->nMem = (int)psVar35;" (assignment_expression "pParse->nMem = (int)psVar35" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)psVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)) goto LAB_000b7c3c;" if (parenthesized_expression "(((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0))" ( (binary_expression "((uVar17 != 0) || (local_e4 != (Schema *)0x0)) || (iVar15 != 0)" (parenthesized_expression "((uVar17 != 0) || (local_e4 != (Schema *)0x0))" ( (binary_expression "(uVar17 != 0) || (local_e4 != (Schema *)0x0)" (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_e4 != (Schema *)0x0)" ( (binary_expression "local_e4 != (Schema *)0x0" identifier != (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000b7c3c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000b7c48:\n        local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);" statement_identifier : (expression_statement "local_90 = (Vdbe **)((int)&psVar35->pVfs + 1);" (assignment_expression "local_90 = (Vdbe **)((int)&psVar35->pVfs + 1)" identifier = (cast_expression "(Vdbe **)((int)&psVar35->pVfs + 1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&psVar35->pVfs + 1)" ( (binary_expression "(int)&psVar35->pVfs + 1" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "pParse->nMem = (int)((int)&psVar35->pVfs + iVar18);" (assignment_expression "pParse->nMem = (int)((int)&psVar35->pVfs + iVar18)" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)((int)&psVar35->pVfs + iVar18)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&psVar35->pVfs + iVar18)" ( (binary_expression "(int)&psVar35->pVfs + iVar18" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + identifier) )))) ;) }) (else_clause "else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }" else (compound_statement "{\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (Vdbe **)0x0;\n        local_c8 = (sqlite3 *)0x0;\n        local_e0 = (sqlite3 *)0x0;\n      }" { (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (Vdbe **)0x0;" (assignment_expression "local_90 = (Vdbe **)0x0" identifier = (cast_expression "(Vdbe **)0x0" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "local_c8 = (sqlite3 *)0x0;" (assignment_expression "local_c8 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = (sqlite3 *)0x0;" (assignment_expression "local_e0 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "unaff_s3 = local_d8;" (assignment_expression "unaff_s3 = local_d8" identifier = identifier) ;) (if_statement "if (local_e8 == (Select *)0x0) {\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;\n      }" { (if_statement "if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7cac;" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7cac;" goto statement_identifier ;)) }) (else_clause "else {\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\n      }" else (compound_statement "{\n        sContext.zAuthContext = pParse->zAuthContext;\n        pParse->zAuthContext = unaff_s4->zName;\n        sContext.pParse = pParse;\n        if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }\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 = unaff_s4->zName;" (assignment_expression "pParse->zAuthContext = unaff_s4->zName" (field_expression "pParse->zAuthContext" identifier -> field_identifier) = (field_expression "unaff_s4->zName" identifier -> field_identifier)) ;) (expression_statement "sContext.pParse = pParse;" (assignment_expression "sContext.pParse = pParse" (field_expression "sContext.pParse" identifier . field_identifier) = identifier) ;) (if_statement "if (pWVar46 == (WhereInfo *)0x0) {\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);\nLAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);\n          pTVar48 = unaff_s4;\n          if (iVar50 != 0) goto LAB_000b7aa8;\n          iVar50 = unaff_s4->nModuleArg;\n        }" { (expression_statement "sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8);" (call_expression "sqlite3MaterializeView\n                    (pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8)" identifier (argument_list "(pParse,unaff_s4,(Expr *)unaff_s4->pSchema,(ExprList *)pWhere,(Expr *)local_f0,\n                     (int)in_stack_fffffed4,(Table *)in_stack_fffffed8)" ( identifier , identifier , (cast_expression "(Expr *)unaff_s4->pSchema" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s4->pSchema" identifier -> field_identifier)) , (cast_expression "(ExprList *)pWhere" ( (type_descriptor "ExprList *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Expr *)local_f0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)in_stack_fffffed4" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(Table *)in_stack_fffffed8" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (labeled_statement "LAB_000b7cac:\n          iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);" statement_identifier : (expression_statement "iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere);" (assignment_expression "iVar50 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere)" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))(&sNC,pWhere)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x562c)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x562c)" ( (binary_expression "PTR_LAB_000f530c + -0x562c" identifier + number_literal) )))) )) (argument_list "(&sNC,pWhere)" ( (pointer_expression "&sNC" & identifier) , identifier )))) ;)) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) (if_statement "if (iVar50 != 0) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar50 != 0)" ( (binary_expression "iVar50 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar50 = unaff_s4->nModuleArg;" (assignment_expression "iVar50 = unaff_s4->nModuleArg" identifier = (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier)) ;) })) }))) (if_statement "if (iVar50 == 0) {\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }" if (parenthesized_expression "(iVar50 == 0)" ( (binary_expression "iVar50 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar7 = psVar43->flags;\n        local_b0 = (sqlite3 *)(pParse->nLabel - 1);\n        pParse->nLabel = (int)local_b0;\n        if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);\n        puVar28 = PTR_LAB_000f5308;\n        iVar50 = (int)unaff_s4->nCol;\n        if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }\n        if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }\n        if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        in_stack_fffffed4 = unaff_s4;\n        in_stack_fffffed8 = local_e0;\n        (*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);\n        if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*(code *)pWVar46)(local_f8,local_b0);\n        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }\n        pTVar48 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }\n      }" { (expression_statement "uVar7 = psVar43->flags;" (assignment_expression "uVar7 = psVar43->flags" identifier = (field_expression "psVar43->flags" identifier -> field_identifier)) ;) (expression_statement "local_b0 = (sqlite3 *)(pParse->nLabel - 1);" (assignment_expression "local_b0 = (sqlite3 *)(pParse->nLabel - 1)" identifier = (cast_expression "(sqlite3 *)(pParse->nLabel - 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel - 1)" ( (binary_expression "pParse->nLabel - 1" (field_expression "pParse->nLabel" identifier -> field_identifier) - number_literal) )))) ;) (expression_statement "pParse->nLabel = (int)local_b0;" (assignment_expression "pParse->nLabel = (int)local_b0" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)local_b0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }" if (parenthesized_expression "(((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0))" ( (binary_expression "((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')) || (local_100 != (AggInfo *)0x0)" (parenthesized_expression "((((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0'))" ( (binary_expression "(((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)) ||\n            (pParse->nested != '\0')" (parenthesized_expression "(((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0))" ( (binary_expression "((uVar7 & 0x100000000) == 0) || (pParse->pTriggerTab != (Table *)0x0)" (parenthesized_expression "((uVar7 & 0x100000000) == 0)" ( (binary_expression "(uVar7 & 0x100000000) == 0" (parenthesized_expression "(uVar7 & 0x100000000)" ( (binary_expression "uVar7 & 0x100000000" identifier & number_literal) )) == number_literal) )) || (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)) ))) )) || (parenthesized_expression "(pParse->nested != '\0')" ( (binary_expression "pParse->nested != '\0'" (field_expression "pParse->nested" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(local_100 != (AggInfo *)0x0)" ( (binary_expression "local_100 != (AggInfo *)0x0" identifier != (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          local_a8 = 0;\n        }" { (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }" else (compound_statement "{\n          local_a8 = pParse->nMem + 1;\n          pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          pParse->nMem = local_a8;\n          (*pcVar16)(local_f8,0x45,0,local_a8,0);\n        }" { (expression_statement "local_a8 = pParse->nMem + 1;" (assignment_expression "local_a8 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "pParse->nMem = local_a8;" (assignment_expression "pParse->nMem = local_a8" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar16)(local_f8,0x45,0,local_a8,0);" (call_expression "(*pcVar16)(local_f8,0x45,0,local_a8,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,0x45,0,local_a8,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) (if_statement "if ((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" if (parenthesized_expression "((pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0))" ( (binary_expression "(pWVar46 == (WhereInfo *)0x0) && ((unaff_s4->tabFlags & 0x80) == 0)" (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((unaff_s4->tabFlags & 0x80) == 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x80) == 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x80)" ( (binary_expression "unaff_s4->tabFlags & 0x80" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (sqlite3 *)0x0;\n          local_dc = (sqlite3 *)0x0;\n          if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (sqlite3 *)0x0;\n          local_cc = (sqlite3 *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;\n          if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }\n          in_stack_fffffed8 = local_c4;\n          local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);\n          pTVar48 = unaff_s4;\n          if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          aiCurOnePass[0] = local_7c->aiCurOnePass[0];\n          aiCurOnePass[1] = local_7c->aiCurOnePass[1];\n          uVar3 = local_7c->eOnePass;\n          local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;\n          if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          pPVar26->isMultiWrite = '\x01';\n          uVar30 = unaff_s4->tabFlags;\n          if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n          pParse->nLabel = (int)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n          local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n          local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n          if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar50 = 0;\n          if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;\n        }" { (expression_statement "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*local_f4)(local_f8,0x48,0,local_80,local_e0);" (call_expression "(*local_f4)(local_f8,0x48,0,local_80,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x48,0,local_80,local_e0)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_98 = (sqlite3 *)0x0;" (assignment_expression "local_98 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (sqlite3 *)0x0;" (assignment_expression "local_dc = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_100 != (AggInfo *)0x0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" if (parenthesized_expression "(local_100 != (AggInfo *)0x0)" ( (binary_expression "local_100 != (AggInfo *)0x0" identifier != (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);\n            uVar30 = unaff_s4->tabFlags;\n            local_cc = (sqlite3 *)0x0;\n            local_9c = (sqlite3 *)0x0;\n            local_88 = 0;\n            uVar3 = '\x01';\n            local_7c = (WhereInfo *)0x0;\nLAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))(pParse,pWhere,local_b0,0x10)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x5054)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x5054)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x5054)" ( (binary_expression "PTR_LAB_000f5308 + 0x5054" identifier + number_literal) )))) )) (argument_list "(pParse,pWhere,local_b0,0x10)" ( identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "uVar30 = unaff_s4->tabFlags;" (assignment_expression "uVar30 = unaff_s4->tabFlags" identifier = (field_expression "unaff_s4->tabFlags" identifier -> field_identifier)) ;) (expression_statement "local_cc = (sqlite3 *)0x0;" (assignment_expression "local_cc = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = (sqlite3 *)0x0;" (assignment_expression "local_9c = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = '\x01';" (assignment_expression "uVar3 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_7c = (WhereInfo *)0x0;" (assignment_expression "local_7c = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_000b7d98:\n            if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }" statement_identifier : (if_statement "if ((uVar30 & 0x80) == 0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }" if (parenthesized_expression "((uVar30 & 0x80) == 0)" ( (binary_expression "(uVar30 & 0x80) == 0" (parenthesized_expression "(uVar30 & 0x80)" ( (binary_expression "uVar30 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }" else (compound_statement "{\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }\n              local_d0 = local_a4;\n              if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }\n            }" { (labeled_statement "LAB_000b7da8:\n              local_a4 = local_d0;" statement_identifier : (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;)) (if_statement "if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\nLAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar50 = 0;\n                psVar35 = local_dc;\n                do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);\n              }" { (labeled_statement "LAB_000b7db0:\n                pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);" statement_identifier : (expression_statement "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;)) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (expression_statement "psVar35 = local_dc;" (assignment_expression "psVar35 = local_dc" identifier = identifier) ;) (do_statement "do {\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar50);" do (compound_statement "{\n                  psVar40 = (short *)((int)local_ec->aiColumn + iVar50);\n                  iVar50 = iVar50 + 2;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);\n                  psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);\n                  local_a4 = local_d0;\n                }" { (expression_statement "psVar40 = (short *)((int)local_ec->aiColumn + iVar50);" (assignment_expression "psVar40 = (short *)((int)local_ec->aiColumn + iVar50)" identifier = (cast_expression "(short *)((int)local_ec->aiColumn + iVar50)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_ec->aiColumn + iVar50)" ( (binary_expression "(int)local_ec->aiColumn + iVar50" (cast_expression "(int)local_ec->aiColumn" ( (type_descriptor "int" primitive_type) ) (field_expression "local_ec->aiColumn" identifier -> field_identifier)) + identifier) )))) ;) (expression_statement "iVar50 = iVar50 + 2;" (assignment_expression "iVar50 = iVar50 + 2" identifier = (binary_expression "iVar50 + 2" identifier + number_literal)) ;) (expression_statement "(*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35);" (call_expression "(*pcVar16)(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,(int)*psVar40,psVar35)" ( identifier , identifier , identifier , (cast_expression "(int)*psVar40" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar40" * identifier)) , identifier ))) ;) (expression_statement "psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1);" (assignment_expression "psVar35 = (sqlite3 *)((int)&psVar35->pVfs + 1)" identifier = (cast_expression "(sqlite3 *)((int)&psVar35->pVfs + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar35->pVfs + 1)" ( (binary_expression "(int)&psVar35->pVfs + 1" (cast_expression "(int)&psVar35->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar35->pVfs" & (field_expression "psVar35->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) }) while (parenthesized_expression "(local_d0 << 1 != iVar50)" ( (binary_expression "local_d0 << 1 != iVar50" (binary_expression "local_d0 << 1" identifier << number_literal) != identifier) )) ;) })) (expression_statement "local_d0 = local_a4;" (assignment_expression "local_d0 = local_a4" identifier = identifier) ;) (if_statement "if (uVar3 == '\0') {\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(uVar3 == '\0')" ( (binary_expression "uVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);\n                uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                uVar3 = '\0';\n                local_dc = local_98;\n              }" { (expression_statement "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (labeled_statement "LAB_000b9410:\n                uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);" statement_identifier : (expression_statement "uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec);" (assignment_expression "uVar27 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))(psVar43,local_ec)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6954)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6954)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6954)" ( (binary_expression "PTR_LAB_000f52ec + 0x6954" identifier + number_literal) )))) )) (argument_list "(psVar43,local_ec)" ( identifier , identifier )))) ;)) (expression_statement "uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);" (assignment_expression "uVar29 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" identifier = (call_expression "(*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x5b,local_dc,local_d0,local_98)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))(local_f8,uVar29,uVar27,local_d0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x37ac)" ( (binary_expression "PTR_DAT_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(local_f8,uVar29,uVar27,local_d0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x82,local_cc,local_98,local_dc,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "uVar3 = '\0';" (assignment_expression "uVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }" else (if_statement "if (local_9c == (sqlite3 *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(local_9c == (sqlite3 *)0x0)" ( (binary_expression "local_9c == (sqlite3 *)0x0" identifier == (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_9c = local_dc;\n              }" { (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }" else (compound_statement "{\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);\n                local_9c = local_dc;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                          (local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(local_f8->pParse,&(local_f8->sWC).aStatic[0].truthProb,local_9c)" ( (field_expression "local_f8->pParse" identifier -> field_identifier) , (pointer_expression "&(local_f8->sWC).aStatic[0].truthProb" & (field_expression "(local_f8->sWC).aStatic[0].truthProb" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }))))) })))) (goto_statement "goto LAB_000b8330;" goto statement_identifier ;) })) (expression_statement "local_9c = (sqlite3 *)0x0;" (assignment_expression "local_9c = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_cc = (sqlite3 *)0x0;" (assignment_expression "local_cc = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9260:\n          in_stack_fffffed4 = (Table *)0x1004;" statement_identifier : (expression_statement "in_stack_fffffed4 = (Table *)0x1004;" (assignment_expression "in_stack_fffffed4 = (Table *)0x1004" identifier = (cast_expression "(Table *)0x1004" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (if_statement "if (pParse->nested == '\0') {\n            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\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            if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }\n          }" { (if_statement "if (local_e4 == (Schema *)0x0) {\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }" if (parenthesized_expression "(local_e4 == (Schema *)0x0)" ( (binary_expression "local_e4 == (Schema *)0x0" identifier == (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              in_stack_fffffed4 = (Table *)0x1004;\n              if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }\n            }" { (expression_statement "in_stack_fffffed4 = (Table *)0x1004;" (assignment_expression "in_stack_fffffed4 = (Table *)0x1004" identifier = (cast_expression "(Table *)0x1004" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar15 == 0) {\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n                if (uVar17 != 0) goto LAB_000b9278;\n                in_stack_fffffed4 = (Table *)0x100c;\n                if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }\n              }" { (if_statement "if (uVar17 != 0) goto LAB_000b9278;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b9278;" goto statement_identifier ;)) (expression_statement "in_stack_fffffed4 = (Table *)0x100c;" (assignment_expression "in_stack_fffffed4 = (Table *)0x100c" identifier = (cast_expression "(Table *)0x100c" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (bReplace != 0) {\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }" if (parenthesized_expression "(bReplace != 0)" ( (binary_expression "bReplace != 0" identifier != number_literal) )) (compound_statement "{\n                  in_stack_fffffed4 = (Table *)0x1004;\n                }" { (expression_statement "in_stack_fffffed4 = (Table *)0x1004;" (assignment_expression "in_stack_fffffed4 = (Table *)0x1004" identifier = (cast_expression "(Table *)0x1004" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) }) (else_clause "else {\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }" else (compound_statement "{\nLAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;\n            }" { (labeled_statement "LAB_000b9278:\n              in_stack_fffffed4 = (Table *)0x1004;" statement_identifier : (expression_statement "in_stack_fffffed4 = (Table *)0x1004;" (assignment_expression "in_stack_fffffed4 = (Table *)0x1004" identifier = (cast_expression "(Table *)0x1004" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }))) })) (expression_statement "in_stack_fffffed8 = local_c4;" (assignment_expression "in_stack_fffffed8 = local_c4" identifier = identifier) ;) (expression_statement "local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4);" (assignment_expression "local_7c = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4)" identifier = (call_expression "sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4)" identifier (argument_list "(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,\n                                       (u16)in_stack_fffffed4,(int)local_c4)" ( 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) , (cast_expression "(u16)in_stack_fffffed4" ( (type_descriptor "u16" type_identifier) ) identifier) , (cast_expression "(int)local_c4" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_7c == (WhereInfo *)0x0) goto LAB_000b7aa8;" if (parenthesized_expression "(local_7c == (WhereInfo *)0x0)" ( (binary_expression "local_7c == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "aiCurOnePass[0] = local_7c->aiCurOnePass[0];" (assignment_expression "aiCurOnePass[0] = local_7c->aiCurOnePass[0]" (subscript_expression "aiCurOnePass[0]" identifier [ number_literal ]) = (subscript_expression "local_7c->aiCurOnePass[0]" (field_expression "local_7c->aiCurOnePass" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "aiCurOnePass[1] = local_7c->aiCurOnePass[1];" (assignment_expression "aiCurOnePass[1] = local_7c->aiCurOnePass[1]" (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]) = (subscript_expression "local_7c->aiCurOnePass[1]" (field_expression "local_7c->aiCurOnePass" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "uVar3 = local_7c->eOnePass;" (assignment_expression "uVar3 = local_7c->eOnePass" identifier = (field_expression "local_7c->eOnePass" identifier -> field_identifier)) ;) (expression_statement "local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f;" (assignment_expression "local_88 = *(uint *)&local_7c->field_0x30 >> 0x1f" identifier = (binary_expression "*(uint *)&local_7c->field_0x30 >> 0x1f" (pointer_expression "*(uint *)&local_7c->field_0x30" * (cast_expression "(uint *)&local_7c->field_0x30" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_7c->field_0x30" & (field_expression "local_7c->field_0x30" identifier -> field_identifier)))) >> number_literal)) ;) (if_statement "if (uVar3 == '\x01') {\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }" if (parenthesized_expression "(uVar3 == '\x01')" ( (binary_expression "uVar3 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            uVar30 = unaff_s4->tabFlags;\n            goto LAB_000b7d98;\n          }" { (expression_statement "uVar30 = unaff_s4->tabFlags;" (assignment_expression "uVar30 = unaff_s4->tabFlags" identifier = (field_expression "unaff_s4->tabFlags" identifier -> field_identifier)) ;) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;) })) (expression_statement "pPVar26 = pParse->pToplevel;" (assignment_expression "pPVar26 = pParse->pToplevel" identifier = (field_expression "pParse->pToplevel" identifier -> field_identifier)) ;) (if_statement "if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }" if (parenthesized_expression "(pParse->pToplevel == (Parse *)0x0)" ( (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            pPVar26 = pParse;\n          }" { (expression_statement "pPVar26 = pParse;" (assignment_expression "pPVar26 = pParse" identifier = identifier) ;) })) (expression_statement "pPVar26->isMultiWrite = '\x01';" (assignment_expression "pPVar26->isMultiWrite = '\x01'" (field_expression "pPVar26->isMultiWrite" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar30 = unaff_s4->tabFlags;" (assignment_expression "uVar30 = unaff_s4->tabFlags" identifier = (field_expression "unaff_s4->tabFlags" identifier -> field_identifier)) ;) (if_statement "if (uVar3 == '\x02') {\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" if (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" { (if_statement "if (((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;" if (parenthesized_expression "(((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))" ( (binary_expression "((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])) ||\n               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0')" (parenthesized_expression "((aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1]))" ( (binary_expression "(aiCurOnePass[1] < 0) || (local_f0 == (WhereInfo *)aiCurOnePass[1])" (parenthesized_expression "(aiCurOnePass[1] < 0)" ( (binary_expression "aiCurOnePass[1] < 0" (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]) < number_literal) )) || (parenthesized_expression "(local_f0 == (WhereInfo *)aiCurOnePass[1])" ( (binary_expression "local_f0 == (WhereInfo *)aiCurOnePass[1]" identifier == (cast_expression "(WhereInfo *)aiCurOnePass[1]" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]))) ))) )) || (parenthesized_expression "(*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0')" ( (binary_expression "*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'" (pointer_expression "*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" * (cast_expression "(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" ( (binary_expression "(int)piVar13 + (aiCurOnePass[1] - (int)local_d4)" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(aiCurOnePass[1] - (int)local_d4)" ( (binary_expression "aiCurOnePass[1] - (int)local_d4" (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;)) (if_statement "if ((uVar30 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" if (parenthesized_expression "((uVar30 & 0x80) == 0)" ( (binary_expression "(uVar30 & 0x80) == 0" (parenthesized_expression "(uVar30 & 0x80)" ( (binary_expression "uVar30 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b937c;" goto statement_identifier ;) })) (if_statement "if (0 < local_d0) {\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\n              uVar3 = '\0';\n              goto LAB_000b7db0;\n            }" { (expression_statement "uVar3 = '\0';" (assignment_expression "uVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000b7db0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000b9410;" goto statement_identifier ;) })) (if_statement "if ((uVar30 & 0x80) != 0) goto LAB_000b7da8;" if (parenthesized_expression "((uVar30 & 0x80) != 0)" ( (binary_expression "(uVar30 & 0x80) != 0" (parenthesized_expression "(uVar30 & 0x80)" ( (binary_expression "uVar30 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000b7da8;" goto statement_identifier ;)) (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (uVar3 == '\0') {\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }" if (parenthesized_expression "(uVar3 == '\0')" ( (binary_expression "uVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b937c:\n            iVar50 = pParse->nMem + 1;\n            pParse->nMem = iVar50;\n            *local_78 = iVar50;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            uVar3 = '\0';\n          }" { (labeled_statement "LAB_000b937c:\n            iVar50 = pParse->nMem + 1;" statement_identifier : (expression_statement "iVar50 = pParse->nMem + 1;" (assignment_expression "iVar50 = pParse->nMem + 1" identifier = (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal)) ;)) (expression_statement "pParse->nMem = iVar50;" (assignment_expression "pParse->nMem = iVar50" (field_expression "pParse->nMem" identifier -> field_identifier) = identifier) ;) (expression_statement "*local_78 = iVar50;" (assignment_expression "*local_78 = iVar50" (pointer_expression "*local_78" * identifier) = identifier) ;) (expression_statement "(*local_f4)(local_f8,0x93,local_80,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x93,local_80,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x93,local_80,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "uVar3 = '\0';" (assignment_expression "uVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) (labeled_statement "LAB_000b8ff0:\n          if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }" statement_identifier : (if_statement "if (uVar3 == '\x02') {\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }" if (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }\n            psVar35 = local_dc;\n            if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,psVar35,local_b0,0);\n            psVar35 = local_d4;\n            goto LAB_000b8340;\n          }" { (if_statement "if (local_e8 == (Select *)0x0) {\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }\n              if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }\n              if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (uVar3 != '\x01') goto LAB_000b9038;\n            }" { (labeled_statement "LAB_000b9784:\n              if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }" statement_identifier : (if_statement "if (-1 < aiCurOnePass[0]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < aiCurOnePass[0])" ( (binary_expression "-1 < aiCurOnePass[0]" number_literal < (subscript_expression "aiCurOnePass[0]" identifier [ number_literal ])) )) (compound_statement "{\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4))" * (cast_expression "(undefined1 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (aiCurOnePass[0] - (int)local_d4))" ( (binary_expression "(int)piVar13 + (aiCurOnePass[0] - (int)local_d4)" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(aiCurOnePass[0] - (int)local_d4)" ( (binary_expression "aiCurOnePass[0] - (int)local_d4" (subscript_expression "aiCurOnePass[0]" identifier [ number_literal ]) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) }))) (if_statement "if (-1 < aiCurOnePass[1]) {\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < aiCurOnePass[1])" ( (binary_expression "-1 < aiCurOnePass[1]" number_literal < (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ])) )) (compound_statement "{\n                *(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" * (cast_expression "(undefined1 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + (aiCurOnePass[1] - (int)local_d4))" ( (binary_expression "(int)piVar13 + (aiCurOnePass[1] - (int)local_d4)" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(aiCurOnePass[1] - (int)local_d4)" ( (binary_expression "aiCurOnePass[1] - (int)local_d4" (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) })) (if_statement "if ((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))) {\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" if (parenthesized_expression "((uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f))))" ( (binary_expression "(uVar3 == '\x02') && (0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))" (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f)))" ( (binary_expression "0 < (int)(local_8c + (~aiCurOnePass[1] >> 0x1f))" number_literal < (cast_expression "(int)(local_8c + (~aiCurOnePass[1] >> 0x1f))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_8c + (~aiCurOnePass[1] >> 0x1f))" ( (binary_expression "local_8c + (~aiCurOnePass[1] >> 0x1f)" identifier + (parenthesized_expression "(~aiCurOnePass[1] >> 0x1f)" ( (binary_expression "~aiCurOnePass[1] >> 0x1f" (unary_expression "~aiCurOnePass[1]" ~ (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ])) >> number_literal) ))) )))) ))) )) (compound_statement "{\n                iVar50 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" { (expression_statement "iVar50 = (*local_f4)(local_f8,0x11,0,0,0);" (assignment_expression "iVar50 = (*local_f4)(local_f8,0x11,0,0,0)" identifier = (call_expression "(*local_f4)(local_f8,0x11,0,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x11,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (unaff_s4->nModuleArg == 0) goto LAB_000b908c;" if (parenthesized_expression "(unaff_s4->nModuleArg == 0)" ( (binary_expression "unaff_s4->nModuleArg == 0" (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_000b908c;" goto statement_identifier ;)) (goto_statement "goto LAB_000b90c8;" goto statement_identifier ;) })) (if_statement "if (unaff_s4->nModuleArg == 0) goto LAB_000b9084;" if (parenthesized_expression "(unaff_s4->nModuleArg == 0)" ( (binary_expression "unaff_s4->nModuleArg == 0" (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_000b9084;" goto statement_identifier ;)) (labeled_statement "LAB_000b97d4:\n              if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" statement_identifier : (if_statement "if (((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" if (parenthesized_expression "(((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0))" ( (binary_expression "((WhereInfo *)aiCurOnePass[0] != local_f0) &&\n                 ((WhereInfo *)aiCurOnePass[1] != local_f0)" (parenthesized_expression "((WhereInfo *)aiCurOnePass[0] != local_f0)" ( (binary_expression "(WhereInfo *)aiCurOnePass[0] != local_f0" (cast_expression "(WhereInfo *)aiCurOnePass[0]" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "aiCurOnePass[0]" identifier [ number_literal ])) != identifier) )) && (parenthesized_expression "((WhereInfo *)aiCurOnePass[1] != local_f0)" ( (binary_expression "(WhereInfo *)aiCurOnePass[1] != local_f0" (cast_expression "(WhereInfo *)aiCurOnePass[1]" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ])) != identifier) ))) )) (compound_statement "{\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b902c:\n              local_d4 = local_b0;" statement_identifier : (expression_statement "local_d4 = local_b0;" (assignment_expression "local_d4 = local_b0" identifier = identifier) ;)) (if_statement "if (uVar3 != '\x01') goto LAB_000b9038;" if (parenthesized_expression "(uVar3 != '\x01')" ( (binary_expression "uVar3 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9038;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }" else (compound_statement "{\nLAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n            }" { (labeled_statement "LAB_000b9038:\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);" statement_identifier : (expression_statement "local_d4 = (sqlite3 *)(pParse->nLabel - 1);" (assignment_expression "local_d4 = (sqlite3 *)(pParse->nLabel - 1)" identifier = (cast_expression "(sqlite3 *)(pParse->nLabel - 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel - 1)" ( (binary_expression "pParse->nLabel - 1" (field_expression "pParse->nLabel" identifier -> field_identifier) - number_literal) )))) ;)) (expression_statement "pParse->nLabel = (int)local_d4;" (assignment_expression "pParse->nLabel = (int)local_d4" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }))) (expression_statement "psVar35 = local_dc;" (assignment_expression "psVar35 = local_dc" identifier = identifier) ;) (if_statement "if (local_ec == (Index *)0x0) {\n              psVar35 = local_e0;\n            }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              psVar35 = local_e0;\n            }" { (expression_statement "psVar35 = local_e0;" (assignment_expression "psVar35 = local_e0" identifier = identifier) ;) })) (expression_statement "(*local_f4)(local_f8,0x32,psVar35,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x32,psVar35,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x32,psVar35,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "psVar35 = local_d4;" (assignment_expression "psVar35 = local_d4" identifier = identifier) ;) (goto_statement "goto LAB_000b8340;" goto statement_identifier ;) }))) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) (labeled_statement "LAB_000b9014:\n          if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;" statement_identifier : (if_statement "if (local_e8 == (Select *)0x0) {\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }\n          else if (uVar3 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (uVar3 != '\0') goto LAB_000b9784;\n            if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar50 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);\nLAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }\n            if (uVar3 != '\0') goto LAB_000b97d4;\n          }" { (if_statement "if (uVar3 != '\0') goto LAB_000b9784;" if (parenthesized_expression "(uVar3 != '\0')" ( (binary_expression "uVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9784;" goto statement_identifier ;)) (if_statement "if (unaff_s4->nModuleArg != 0) goto LAB_000b911c;" if (parenthesized_expression "(unaff_s4->nModuleArg != 0)" ( (binary_expression "unaff_s4->nModuleArg != 0" (field_expression "unaff_s4->nModuleArg" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_000b911c;" goto statement_identifier ;)) (labeled_statement "LAB_000b9084:\n            iVar50 = 0;" statement_identifier : (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x7a78))(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7a78))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7a78)" * (cast_expression "(code *)(PTR_000f5314 + 0x7a78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7a78)" ( (binary_expression "PTR_000f5314 + 0x7a78" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,0x61,0,local_d4,piVar13,0,0)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal ))) ;)) (labeled_statement "LAB_000b90c8:\n            if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }" statement_identifier : (if_statement "if (iVar50 != 0) {\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }" if (parenthesized_expression "(iVar50 != 0)" ( (binary_expression "iVar50 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;\n              iVar18 = iVar36 + -1;\n              if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }\n            }" { (expression_statement "iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator;" (assignment_expression "iVar36 = *(int *)&(local_f8->sWC).aStatic[0].eOperator" identifier = (pointer_expression "*(int *)&(local_f8->sWC).aStatic[0].eOperator" * (cast_expression "(int *)&(local_f8->sWC).aStatic[0].eOperator" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_f8->sWC).aStatic[0].eOperator" & (field_expression "(local_f8->sWC).aStatic[0].eOperator" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) ;) (expression_statement "iVar18 = iVar36 + -1;" (assignment_expression "iVar18 = iVar36 + -1" identifier = (binary_expression "iVar36 + -1" identifier + number_literal)) ;) (if_statement "if (iVar18 == iVar50) {\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }\n              else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }" if (parenthesized_expression "(iVar18 == iVar50)" ( (binary_expression "iVar18 == iVar50" identifier == identifier) )) (compound_statement "{\n                (local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);\n                (local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);\n                (local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;\n              }" { (expression_statement "(local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10);" (assignment_expression "(local_f8->sWC).aStatic[0].eOperator = (short)((uint)iVar50 >> 0x10)" (field_expression "(local_f8->sWC).aStatic[0].eOperator" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(short)((uint)iVar50 >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)iVar50 >> 0x10)" ( (binary_expression "(uint)iVar50 >> 0x10" (cast_expression "(uint)iVar50" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8);" (assignment_expression "(local_f8->sWC).aStatic[0].nChild = (char)((uint)iVar50 >> 8)" (field_expression "(local_f8->sWC).aStatic[0].nChild" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(char)((uint)iVar50 >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)iVar50 >> 8)" ( (binary_expression "(uint)iVar50 >> 8" (cast_expression "(uint)iVar50" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "(local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50;" (assignment_expression "(local_f8->sWC).aStatic[0].eMatchOp = (char)iVar50" (field_expression "(local_f8->sWC).aStatic[0].eMatchOp" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier) = (cast_expression "(char)iVar50" ( (type_descriptor "char" primitive_type) ) identifier)) ;) }) (else_clause "else {\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }" else (compound_statement "{\n                if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }\n                if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar28 + 8) = iVar36;\n              }" { (if_statement "if (-1 < iVar50) {\n                  iVar18 = iVar50;\n                }" if (parenthesized_expression "(-1 < iVar50)" ( (binary_expression "-1 < iVar50" number_literal < identifier) )) (compound_statement "{\n                  iVar18 = iVar50;\n                }" { (expression_statement "iVar18 = iVar50;" (assignment_expression "iVar18 = iVar50" identifier = identifier) ;) })) (if_statement "if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }\n                else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }" if (parenthesized_expression "(*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0')" ( (binary_expression "*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0'" (pointer_expression "*(char *)((int)&local_f8->pParse->writeMask + 1)" * (cast_expression "(char *)((int)&local_f8->pParse->writeMask + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_f8->pParse->writeMask + 1)" ( (binary_expression "(int)&local_f8->pParse->writeMask + 1" (cast_expression "(int)&local_f8->pParse->writeMask" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_f8->pParse->writeMask" & (field_expression "local_f8->pParse->writeMask" (field_expression "local_f8->pParse" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);\n                }" { (expression_statement "puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb);" (assignment_expression "puVar28 = (undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb)" identifier = (cast_expression "(undefined *)\n                            (iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb)" ( (binary_expression "iVar18 * 0x14 + *(int *)&(local_f8->sWC).aStatic[0].truthProb" (binary_expression "iVar18 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)&(local_f8->sWC).aStatic[0].truthProb" * (cast_expression "(int *)&(local_f8->sWC).aStatic[0].truthProb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(local_f8->sWC).aStatic[0].truthProb" & (field_expression "(local_f8->sWC).aStatic[0].truthProb" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) )))) ;) }) (else_clause "else {\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }" else (compound_statement "{\n                  puVar28 = PTR_DAT_000f52bc + 0x5860;\n                }" { (expression_statement "puVar28 = PTR_DAT_000f52bc + 0x5860;" (assignment_expression "puVar28 = PTR_DAT_000f52bc + 0x5860" identifier = (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(puVar28 + 8) = iVar36;" (assignment_expression "*(int *)(puVar28 + 8) = iVar36" (pointer_expression "*(int *)(puVar28 + 8)" * (cast_expression "(int *)(puVar28 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 8)" ( (binary_expression "puVar28 + 8" identifier + number_literal) )))) = identifier) ;) }))) }))) (if_statement "if (uVar3 != '\0') goto LAB_000b97d4;" if (parenthesized_expression "(uVar3 != '\0')" ( (binary_expression "uVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b97d4;" goto statement_identifier ;)) }) (else_clause "else if (uVar3 != '\0') goto LAB_000b902c;" else (if_statement "if (uVar3 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(uVar3 != '\0')" ( (binary_expression "uVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b902c;" goto statement_identifier ;))))) (labeled_statement "LAB_000b911c:\n          if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" statement_identifier : (if_statement "if (local_ec == (Index *)0x0) {\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" { (if_statement "if (pWVar46 != (WhereInfo *)0x0) {\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" if (parenthesized_expression "(pWVar46 != (WhereInfo *)0x0)" ( (binary_expression "pWVar46 != (WhereInfo *)0x0" identifier != (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_d4 = (sqlite3 *)(pParse->nLabel - 1);\n              pParse->nLabel = (int)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;\n              local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;\n              local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;\n              if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" { (expression_statement "local_d4 = (sqlite3 *)(pParse->nLabel - 1);" (assignment_expression "local_d4 = (sqlite3 *)(pParse->nLabel - 1)" identifier = (cast_expression "(sqlite3 *)(pParse->nLabel - 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel - 1)" ( (binary_expression "pParse->nLabel - 1" (field_expression "pParse->nLabel" identifier -> field_identifier) - number_literal) )))) ;) (expression_statement "pParse->nLabel = (int)local_d4;" (assignment_expression "pParse->nLabel = (int)local_d4" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;" (assignment_expression "local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator" (field_expression "local_a0._0_2_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].eOperator" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;" (assignment_expression "local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild" (field_expression "local_a0._2_1_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].nChild" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;" (assignment_expression "local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp" (field_expression "local_a0._3_1_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].eMatchOp" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if (local_e8 == (Select *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_cc,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b916c;" goto statement_identifier ;) })) (expression_statement "local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);" (assignment_expression "local_d4 = (sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" identifier = (cast_expression "(sqlite3 *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x2a,local_80,local_b0,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9a58:\n            if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;" statement_identifier : (if_statement "if (local_d8 == (WhereInfo *)0x0) goto LAB_000b839c;" if (parenthesized_expression "(local_d8 == (WhereInfo *)0x0)" ( (binary_expression "local_d8 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b839c;" goto statement_identifier ;))) (labeled_statement "LAB_000b8358:\n            if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }" statement_identifier : (if_statement "if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }" if (parenthesized_expression "(pParse->pVdbe != (Vdbe *)0x0)" ( (binary_expression "pParse->pVdbe != (Vdbe *)0x0" (field_expression "pParse->pVdbe" identifier -> field_identifier) != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse,local_b4,local_c8)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(pParse,local_b4,local_c8)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_000b837c;" goto statement_identifier ;) }))) (expression_statement "local_d4 = (sqlite3 *)(pParse->nLabel - 1);" (assignment_expression "local_d4 = (sqlite3 *)(pParse->nLabel - 1)" identifier = (cast_expression "(sqlite3 *)(pParse->nLabel - 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nLabel - 1)" ( (binary_expression "pParse->nLabel - 1" (field_expression "pParse->nLabel" identifier -> field_identifier) - number_literal) )))) ;) (expression_statement "pParse->nLabel = (int)local_d4;" (assignment_expression "pParse->nLabel = (int)local_d4" (field_expression "pParse->nLabel" identifier -> field_identifier) = (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator;" (assignment_expression "local_a0._0_2_ = (local_f8->sWC).aStatic[0].eOperator" (field_expression "local_a0._0_2_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].eOperator" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild;" (assignment_expression "local_a0._2_1_ = (local_f8->sWC).aStatic[0].nChild" (field_expression "local_a0._2_1_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].nChild" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp;" (assignment_expression "local_a0._3_1_ = (local_f8->sWC).aStatic[0].eMatchOp" (field_expression "local_a0._3_1_" identifier . field_identifier) = (field_expression "(local_f8->sWC).aStatic[0].eMatchOp" (subscript_expression "(local_f8->sWC).aStatic[0]" (field_expression "(local_f8->sWC).aStatic" (parenthesized_expression "(local_f8->sWC)" ( (field_expression "local_f8->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) ;) (if_statement "if (pWVar46 == (WhereInfo *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" { (expression_statement "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0);" (call_expression "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7e,local_cc,local_dc,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,0)" ( identifier , number_literal , identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b9a58;" goto statement_identifier ;) })) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 == (Select *)0x0) {\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }\n            (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" { (for_statement "for (; iVar50 < local_d0; iVar50 = iVar50 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }" for ( ; (binary_expression "iVar50 < local_d0" identifier < identifier) ; (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ) (compound_statement "{\n              (*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));\n            }" { (expression_statement "(*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50));" (call_expression "(*local_f4)(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50))" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar50,\n                          (undefined1 *)((int)&local_9c->pVfs + iVar50))" ( identifier , number_literal , identifier , identifier , (cast_expression "(undefined1 *)((int)&local_9c->pVfs + iVar50)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_9c->pVfs + iVar50)" ( (binary_expression "(int)&local_9c->pVfs + iVar50" (cast_expression "(int)&local_9c->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_9c->pVfs" & (field_expression "local_9c->pVfs" identifier -> field_identifier))) + identifier) ))) ))) ;) })) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_000b916c:\n          if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;" statement_identifier : (if_statement "if (local_d8 != (WhereInfo *)0x0) goto LAB_000b9174;" if (parenthesized_expression "(local_d8 != (WhereInfo *)0x0)" ( (binary_expression "local_d8 != (WhereInfo *)0x0" identifier != (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9174;" goto statement_identifier ;))) }) (else_clause "else {\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" else (compound_statement "{\n          if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }\n          local_a4 = local_d0;\n          local_dc = (sqlite3 *)(pParse->nMem + 1);\n          local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);\n          pParse->nMem = (int)local_98;\n          if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }\n          uVar3 = '\0';\n          pPVar26 = pParse->pToplevel;\n          if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }\n          local_7c = (WhereInfo *)0x0;\n          local_88 = 1;\n          pPVar26->isMultiWrite = '\x01';\n          local_9c = local_dc;\nLAB_000b8330:\n          psVar35 = local_b0;\n          if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = psVar35;\n          local_a0 = 0;\n          if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" { (if_statement "if (local_ec == (Index *)0x0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_d0 = 0;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }" else (compound_statement "{\n            local_d0 = (int)(short)local_ec->nKeyCol;\n          }" { (expression_statement "local_d0 = (int)(short)local_ec->nKeyCol;" (assignment_expression "local_d0 = (int)(short)local_ec->nKeyCol" identifier = (cast_expression "(int)(short)local_ec->nKeyCol" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)local_ec->nKeyCol" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (field_expression "local_ec->nKeyCol" identifier -> field_identifier)))) ;) }))) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) (expression_statement "local_dc = (sqlite3 *)(pParse->nMem + 1);" (assignment_expression "local_dc = (sqlite3 *)(pParse->nMem + 1)" identifier = (cast_expression "(sqlite3 *)(pParse->nMem + 1)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pParse->nMem + 1)" ( (binary_expression "pParse->nMem + 1" (field_expression "pParse->nMem" identifier -> field_identifier) + number_literal) )))) ;) (expression_statement "local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13);" (assignment_expression "local_98 = (sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13)" identifier = (cast_expression "(sqlite3 *)((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13)" ( (binary_expression "(int)pWVar46->aiCurOnePass + pParse->nMem + local_d0 + -0x13" (binary_expression "(int)pWVar46->aiCurOnePass + pParse->nMem + local_d0" (binary_expression "(int)pWVar46->aiCurOnePass + pParse->nMem" (cast_expression "(int)pWVar46->aiCurOnePass" ( (type_descriptor "int" primitive_type) ) (field_expression "pWVar46->aiCurOnePass" identifier -> field_identifier)) + (field_expression "pParse->nMem" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "pParse->nMem = (int)local_98;" (assignment_expression "pParse->nMem = (int)local_98" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)local_98" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (local_100 == (AggInfo *)0x0) {\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }\n          else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }" if (parenthesized_expression "(local_100 == (AggInfo *)0x0)" ( (binary_expression "local_100 == (AggInfo *)0x0" identifier == (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar50 = 0;\n            if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            local_cc = (sqlite3 *)pParse->nTab;\n            iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;\n            pParse->nTab = (int)((int)&local_cc->pVfs + 1);\n            puVar28 = PTR_DAT_000f52e8;\n            if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar28 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;\n            if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);\n          }" { (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 != (Select *)0x0) {\n              iVar50 = (int)unaff_s4->nCol;\n            }" if (parenthesized_expression "(local_e8 != (Select *)0x0)" ( (binary_expression "local_e8 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar50 = (int)unaff_s4->nCol;\n            }" { (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) })) (expression_statement "local_cc = (sqlite3 *)pParse->nTab;" (assignment_expression "local_cc = (sqlite3 *)pParse->nTab" identifier = (cast_expression "(sqlite3 *)pParse->nTab" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->nTab" identifier -> field_identifier))) ;) (expression_statement "iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14;" (assignment_expression "iVar50 = (int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14" identifier = (binary_expression "(int)pWVar46->aiCurOnePass + iVar50 + local_d0 + -0x14" (binary_expression "(int)pWVar46->aiCurOnePass + iVar50 + local_d0" (binary_expression "(int)pWVar46->aiCurOnePass + iVar50" (cast_expression "(int)pWVar46->aiCurOnePass" ( (type_descriptor "int" primitive_type) ) (field_expression "pWVar46->aiCurOnePass" identifier -> field_identifier)) + identifier) + identifier) + number_literal)) ;) (expression_statement "pParse->nTab = (int)((int)&local_cc->pVfs + 1);" (assignment_expression "pParse->nTab = (int)((int)&local_cc->pVfs + 1)" (field_expression "pParse->nTab" identifier -> field_identifier) = (cast_expression "(int)((int)&local_cc->pVfs + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&local_cc->pVfs + 1)" ( (binary_expression "(int)&local_cc->pVfs + 1" (cast_expression "(int)&local_cc->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_cc->pVfs" & (field_expression "local_cc->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "puVar28 = PTR_DAT_000f52e8;" (assignment_expression "puVar28 = PTR_DAT_000f52e8" identifier = identifier) ;) (if_statement "if (local_ec == (Index *)0x0) {\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }\n            else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);\n            }" { (expression_statement "local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0);" (assignment_expression "local_9c = (sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0)" identifier = (cast_expression "(sqlite3 *)\n                         (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,100,local_cc,iVar50,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,100,local_cc,iVar50,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }" else (compound_statement "{\n              pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n              (*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));\n              local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);\n              iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);\n              if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }\n            }" { (expression_statement "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d));" (call_expression "(*pcVar16)(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d))" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,0x48,0,local_dc,\n                         (undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d))" ( identifier , number_literal , number_literal , identifier , (cast_expression "(undefined1 *)((int)local_dc->aLimit + local_d0 + -0x6d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_dc->aLimit + local_d0 + -0x6d)" ( (binary_expression "(int)local_dc->aLimit + local_d0 + -0x6d" (binary_expression "(int)local_dc->aLimit + local_d0" (cast_expression "(int)local_dc->aLimit" ( (type_descriptor "int" primitive_type) ) (field_expression "local_dc->aLimit" identifier -> field_identifier)) + identifier) + number_literal) ))) ))) ;) (expression_statement "local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0);" (assignment_expression "local_9c = (sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0)" identifier = (cast_expression "(sqlite3 *)(*pcVar16)(local_f8,100,local_cc,iVar50,0)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar16)(local_f8,100,local_cc,iVar50,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,100,local_cc,iVar50,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec);" (assignment_expression "iVar18 = (*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec)" identifier = (call_expression "(*(code *)(PTR_LAB_000f5300 + -0x1400))(pParse,local_ec)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5300 + -0x1400))" ( (pointer_expression "*(code *)(PTR_LAB_000f5300 + -0x1400)" * (cast_expression "(code *)(PTR_LAB_000f5300 + -0x1400)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5300 + -0x1400)" ( (binary_expression "PTR_LAB_000f5300 + -0x1400" identifier + number_literal) )))) )) (argument_list "(pParse,local_ec)" ( identifier , identifier )))) ;) (if_statement "if (iVar18 != 0) {\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar18 + 8) = (short)iVar50;\n                (*pcVar16)(local_f8,iVar18,0xfffffff7);\n              }" { (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + 0x280c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x280c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x280c)" ( (binary_expression "PTR_LAB_000f52ec + 0x280c" identifier + number_literal) )))) ;) (expression_statement "*(short *)(iVar18 + 8) = (short)iVar50;" (assignment_expression "*(short *)(iVar18 + 8) = (short)iVar50" (pointer_expression "*(short *)(iVar18 + 8)" * (cast_expression "(short *)(iVar18 + 8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + 8)" ( (binary_expression "iVar18 + 8" identifier + number_literal) )))) = (cast_expression "(short)iVar50" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "(*pcVar16)(local_f8,iVar18,0xfffffff7);" (call_expression "(*pcVar16)(local_f8,iVar18,0xfffffff7)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,iVar18,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) })) }))) (expression_statement "local_f4 = (code *)(puVar28 + -0x47a8);" (assignment_expression "local_f4 = (code *)(puVar28 + -0x47a8)" identifier = (cast_expression "(code *)(puVar28 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x47a8)" ( (binary_expression "puVar28 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b9260;" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9260;" goto statement_identifier ;)) (if_statement "if (local_e8 != (Select *)0x0) {\n              local_f0 = (WhereInfo *)local_cc;\n            }" if (parenthesized_expression "(local_e8 != (Select *)0x0)" ( (binary_expression "local_e8 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_f0 = (WhereInfo *)local_cc;\n            }" { (expression_statement "local_f0 = (WhereInfo *)local_cc;" (assignment_expression "local_f0 = (WhereInfo *)local_cc" identifier = (cast_expression "(WhereInfo *)local_cc" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (pParse,local_cc,local_ec,pChanges,pTabList,pWhere)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(pParse,local_cc,local_ec,pChanges,pTabList,pWhere)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }" else (compound_statement "{\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;\n            local_cc = (sqlite3 *)0x0;\n          }" { (if_statement "if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b7d5c;" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7d5c;" goto statement_identifier ;)) (expression_statement "local_cc = (sqlite3 *)0x0;" (assignment_expression "local_cc = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "uVar3 = '\0';" (assignment_expression "uVar3 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pPVar26 = pParse->pToplevel;" (assignment_expression "pPVar26 = pParse->pToplevel" identifier = (field_expression "pParse->pToplevel" identifier -> field_identifier)) ;) (if_statement "if (pParse->pToplevel == (Parse *)0x0) {\n            pPVar26 = pParse;\n          }" if (parenthesized_expression "(pParse->pToplevel == (Parse *)0x0)" ( (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            pPVar26 = pParse;\n          }" { (expression_statement "pPVar26 = pParse;" (assignment_expression "pPVar26 = pParse" identifier = identifier) ;) })) (expression_statement "local_7c = (WhereInfo *)0x0;" (assignment_expression "local_7c = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "pPVar26->isMultiWrite = '\x01';" (assignment_expression "pPVar26->isMultiWrite = '\x01'" (field_expression "pPVar26->isMultiWrite" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (labeled_statement "LAB_000b8330:\n          psVar35 = local_b0;" statement_identifier : (expression_statement "psVar35 = local_b0;" (assignment_expression "psVar35 = local_b0" identifier = identifier) ;)) (if_statement "if (local_100 == (AggInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" if (parenthesized_expression "(local_100 == (AggInfo *)0x0)" ( (binary_expression "local_100 == (AggInfo *)0x0" identifier == (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" { (expression_statement "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8ff0;" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8ff0;" goto statement_identifier ;)) (goto_statement "goto LAB_000b9014;" goto statement_identifier ;) })) (labeled_statement "LAB_000b8340:\n          local_d4 = psVar35;" statement_identifier : (expression_statement "local_d4 = psVar35;" (assignment_expression "local_d4 = psVar35" identifier = identifier) ;)) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if (local_d8 != (WhereInfo *)0x0) {\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" if (parenthesized_expression "(local_d8 != (WhereInfo *)0x0)" ( (binary_expression "local_d8 != (WhereInfo *)0x0" identifier != (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n            if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" { (expression_statement "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pWVar46 == (WhereInfo *)0x0) goto LAB_000b8358;" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8358;" goto statement_identifier ;)) (labeled_statement "LAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,local_ac,local_c8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0xf,local_c8,0,0);" (call_expression "(*local_f4)(local_f8,0xf,local_c8,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0xf,local_c8,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) })) }))) (labeled_statement "LAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" statement_identifier : (if_statement "if (local_84 == 0) {\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar15 != 0) goto LAB_000b8840;\n          if (local_e4 != (Schema *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }" { (if_statement "if (iVar15 != 0) goto LAB_000b8840;" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8840;" goto statement_identifier ;)) (if_statement "if (local_e4 != (Schema *)0x0) goto LAB_000b8838;" if (parenthesized_expression "(local_e4 != (Schema *)0x0)" ( (binary_expression "local_e4 != (Schema *)0x0" identifier != (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8838;" goto statement_identifier ;)) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) }) (else_clause "else {\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" else (compound_statement "{\n          uVar30 = 0;\n          if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);\n          puVar28 = PTR_DAT_000f52e8;\n          if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }\n          if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" { (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;) (if_statement "if (iVar15 != 0) {\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }\n          }" { (labeled_statement "LAB_000b8840:\n            if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }" statement_identifier : (if_statement "if ((pParse->db->flags & 0x4000) == 0) {\nLAB_000b8838:\n              uVar30 = 0;\n            }\n            else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }" if (parenthesized_expression "((pParse->db->flags & 0x4000) == 0)" ( (binary_expression "(pParse->db->flags & 0x4000) == 0" (parenthesized_expression "(pParse->db->flags & 0x4000)" ( (binary_expression "pParse->db->flags & 0x4000" (field_expression "pParse->db->flags" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000b8838:\n              uVar30 = 0;\n            }" { (labeled_statement "LAB_000b8838:\n              uVar30 = 0;" statement_identifier : (expression_statement "uVar30 = 0;" (assignment_expression "uVar30 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }" else (compound_statement "{\n              uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);\n            }" { (expression_statement "uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4);" (assignment_expression "uVar30 = (*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4)" identifier = (call_expression "(*(code *)(PTR_000f5314 + 0x7450))(pParse,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7450))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7450)" * (cast_expression "(code *)(PTR_000f5314 + 0x7450)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7450)" ( (binary_expression "PTR_000f5314 + 0x7450" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4)" ( identifier , identifier )))) ;) })))) })) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) (expression_statement "uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError);" (assignment_expression "uVar23 = sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError)" identifier = (call_expression "sqlite3TriggerColmask(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError)" identifier (argument_list "(pParse,(Trigger *)local_e4,pChanges,0,3,unaff_s4,onError)" ( identifier , (cast_expression "(Trigger *)local_e4" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar28 = PTR_DAT_000f52e8;" (assignment_expression "puVar28 = PTR_DAT_000f52e8" identifier = identifier) ;) (if_statement "if (0 < unaff_s4->nCol) {\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }" if (parenthesized_expression "(0 < unaff_s4->nCol)" ( (binary_expression "0 < unaff_s4->nCol" number_literal < (field_expression "unaff_s4->nCol" identifier -> field_identifier)) )) (compound_statement "{\n            local_f4 = (code *)0x0;\n            uVar45 = 0;\n            pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);\n          }" { (expression_statement "local_f4 = (code *)0x0;" (assignment_expression "local_f4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f52ec + 0xf74)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0xf74)" ( (binary_expression "PTR_LAB_000f52ec + 0xf74" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar45 < (int)unaff_s4->nCol);" do (compound_statement "{\n              iVar50 = (int)(short)uVar45;\n              if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }\n              if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }\n              uVar45 = uVar45 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            }" { (expression_statement "iVar50 = (int)(short)uVar45;" (assignment_expression "iVar50 = (int)(short)uVar45" identifier = (cast_expression "(int)(short)uVar45" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar45" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (if_statement "if ((unaff_s4->tabFlags & 0x20) != 0) {\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }" if (parenthesized_expression "((unaff_s4->tabFlags & 0x20) != 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x20) != 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x20)" ( (binary_expression "unaff_s4->tabFlags & 0x20" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar50 = (*pcVar16)(unaff_s4,iVar50);\n              }" { (expression_statement "iVar50 = (*pcVar16)(unaff_s4,iVar50);" (assignment_expression "iVar50 = (*pcVar16)(unaff_s4,iVar50)" identifier = (call_expression "(*pcVar16)(unaff_s4,iVar50)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(unaff_s4,iVar50)" ( identifier , identifier )))) ;) })) (if_statement "if (((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }\n              else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }" if (parenthesized_expression "(((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0))))" ( (binary_expression "((uVar23 | uVar30) == 0xffffffff) ||\n                 ((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))" (parenthesized_expression "((uVar23 | uVar30) == 0xffffffff)" ( (binary_expression "(uVar23 | uVar30) == 0xffffffff" (parenthesized_expression "(uVar23 | uVar30)" ( (binary_expression "uVar23 | uVar30" identifier | identifier) )) == number_literal) )) || (parenthesized_expression "((((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)))" ( (parenthesized_expression "(((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0))" ( (binary_expression "((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)) ||\n                  ((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)" (parenthesized_expression "((int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0))" ( (binary_expression "(int)uVar45 < 0x20 && ((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)" (binary_expression "(int)uVar45 < 0x20" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (parenthesized_expression "((1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0)" ( (binary_expression "(1 << (uVar45 & 0x1f) & (uVar23 | uVar30)) != 0" (parenthesized_expression "(1 << (uVar45 & 0x1f) & (uVar23 | uVar30))" ( (binary_expression "1 << (uVar45 & 0x1f) & (uVar23 | uVar30)" (binary_expression "1 << (uVar45 & 0x1f)" number_literal << (parenthesized_expression "(uVar45 & 0x1f)" ( (binary_expression "uVar45 & 0x1f" identifier & number_literal) ))) & (parenthesized_expression "(uVar23 | uVar30)" ( (binary_expression "uVar23 | uVar30" identifier | identifier) ))) )) != number_literal) ))) )) || (parenthesized_expression "((*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0)" ( (binary_expression "(*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1) != 0" (parenthesized_expression "(*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1)" ( (binary_expression "*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4) & 1" (pointer_expression "*(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4)" * (cast_expression "(ushort *)((int)&unaff_s4->aCol->colFlags + (int)local_f4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&unaff_s4->aCol->colFlags + (int)local_f4)" ( (binary_expression "(int)&unaff_s4->aCol->colFlags + (int)local_f4" (cast_expression "(int)&unaff_s4->aCol->colFlags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&unaff_s4->aCol->colFlags" & (field_expression "unaff_s4->aCol->colFlags" (field_expression "unaff_s4->aCol" identifier -> field_identifier) -> field_identifier))) + (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier)) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                (*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);\n              }" { (expression_statement "(*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94);" (call_expression "(*pcVar24)(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar45,iVar50 + local_94)" ( identifier , identifier , identifier , identifier , (binary_expression "iVar50 + local_94" identifier + identifier) ))) ;) }) (else_clause "else {\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }" else (compound_statement "{\n                (*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);\n              }" { (expression_statement "(*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0);" (call_expression "(*(code *)(puVar28 + -0x47a8))(local_f8,0x48,0,iVar50 + local_94,0)" (parenthesized_expression "(*(code *)(puVar28 + -0x47a8))" ( (pointer_expression "*(code *)(puVar28 + -0x47a8)" * (cast_expression "(code *)(puVar28 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + -0x47a8)" ( (binary_expression "puVar28 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x48,0,iVar50 + local_94,0)" ( identifier , number_literal , number_literal , (binary_expression "iVar50 + local_94" identifier + identifier) , number_literal ))) ;) }))) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "local_f4 = (code *)((int)local_f4 + 0x14);" (assignment_expression "local_f4 = (code *)((int)local_f4 + 0x14)" identifier = (cast_expression "(code *)((int)local_f4 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f4 + 0x14)" ( (binary_expression "(int)local_f4 + 0x14" (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar45 < (int)unaff_s4->nCol)" ( (binary_expression "(int)uVar45 < (int)unaff_s4->nCol" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) )) ;) })) (if_statement "if ((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" if (parenthesized_expression "((local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0))" ( (binary_expression "(local_d8 == (WhereInfo *)0x0) && (local_ec == (Index *)0x0)" (parenthesized_expression "(local_d8 == (WhereInfo *)0x0)" ( (binary_expression "local_d8 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x4d,local_e0,local_c8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) })))) (expression_statement "uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError);" (assignment_expression "uVar30 = (*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError)" identifier = (call_expression "(*local_b4)(pParse,local_e4,pChanges,1,1,unaff_s4,onError)" (parenthesized_expression "(*local_b4)" ( (pointer_expression "*local_b4" * identifier) )) (argument_list "(pParse,local_e4,pChanges,1,1,unaff_s4,onError)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar28 = PTR_LAB_000f5308;" (assignment_expression "puVar28 = PTR_LAB_000f5308" identifier = identifier) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (if_statement "if (0 < iVar50) {\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }" if (parenthesized_expression "(0 < iVar50)" ( (binary_expression "0 < iVar50" number_literal < identifier) )) (compound_statement "{\n          uVar45 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n          ppVVar49 = local_90;\n          do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);\n        }" { (expression_statement "uVar45 = 0;" (assignment_expression "uVar45 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "pcVar24 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "ppVVar49 = local_90;" (assignment_expression "ppVVar49 = local_90" identifier = identifier) ;) (do_statement "do {\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          } while ((int)uVar45 < iVar50);" do (compound_statement "{\n            if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }\n            uVar45 = uVar45 + 1;\n            ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n          }" { (if_statement "if (uVar45 == (int)unaff_s4->iPKey) {\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }\n            else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }" if (parenthesized_expression "(uVar45 == (int)unaff_s4->iPKey)" ( (binary_expression "uVar45 == (int)unaff_s4->iPKey" identifier == (cast_expression "(int)unaff_s4->iPKey" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->iPKey" identifier -> field_identifier))) )) (compound_statement "{\nLAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);\n              iVar50 = (int)unaff_s4->nCol;\n            }" { (labeled_statement "LAB_000b8640:\n              (*pcVar24)(local_f8,0x48,0,ppVVar49,0);" statement_identifier : (expression_statement "(*pcVar24)(local_f8,0x48,0,ppVVar49,0);" (call_expression "(*pcVar24)(local_f8,0x48,0,ppVVar49,0)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(local_f8,0x48,0,ppVVar49,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) }) (else_clause "else {\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }" else (compound_statement "{\n              uVar5 = unaff_s4->aCol[uVar45].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }\n            }" { (expression_statement "uVar5 = unaff_s4->aCol[uVar45].colFlags;" (assignment_expression "uVar5 = unaff_s4->aCol[uVar45].colFlags" identifier = (field_expression "unaff_s4->aCol[uVar45].colFlags" (subscript_expression "unaff_s4->aCol[uVar45]" (field_expression "unaff_s4->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar5 & 0x60) == 0) {\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }\n              else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }" if (parenthesized_expression "((uVar5 & 0x60) == 0)" ( (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                iVar18 = piVar12[uVar45];\n                if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }\n              }" { (expression_statement "iVar18 = piVar12[uVar45];" (assignment_expression "iVar18 = piVar12[uVar45]" identifier = (subscript_expression "piVar12[uVar45]" identifier [ identifier ])) ;) (if_statement "if (iVar18 < 0) {\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }\n                else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n                  if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                  local_88 = 0;\n                }" { (if_statement "if ((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)) goto LAB_000b8640;" if (parenthesized_expression "((((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0))" ( (binary_expression "(((tmask & 1U) != 0) && ((int)uVar45 < 0x20)) &&\n                     ((uVar30 >> (uVar45 & 0x1f) & 1) == 0)" (parenthesized_expression "(((tmask & 1U) != 0) && ((int)uVar45 < 0x20))" ( (binary_expression "((tmask & 1U) != 0) && ((int)uVar45 < 0x20)" (parenthesized_expression "((tmask & 1U) != 0)" ( (binary_expression "(tmask & 1U) != 0" (parenthesized_expression "(tmask & 1U)" ( (binary_expression "tmask & 1U" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)uVar45 < 0x20)" ( (binary_expression "(int)uVar45 < 0x20" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) && (parenthesized_expression "((uVar30 >> (uVar45 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar30 >> (uVar45 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar30 >> (uVar45 & 0x1f) & 1)" ( (binary_expression "uVar30 >> (uVar45 & 0x1f) & 1" (binary_expression "uVar30 >> (uVar45 & 0x1f)" identifier >> (parenthesized_expression "(uVar45 & 0x1f)" ( (binary_expression "uVar45 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_000b8640;" goto statement_identifier ;)) (expression_statement "(*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49);" (call_expression "(*pcVar16)(local_f8,unaff_s4,local_f0,uVar45,ppVVar49)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar45,ppVVar49)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) }) (else_clause "else if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }" else (if_statement "if (pWVar46 == (WhereInfo *)0x0) {\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }\n                else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }" if (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }\n                }" { (if_statement "if (pParse->pVdbe != (Vdbe *)0x0) {\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }" if (parenthesized_expression "(pParse->pVdbe != (Vdbe *)0x0)" ( (binary_expression "pParse->pVdbe != (Vdbe *)0x0" (field_expression "pParse->pVdbe" identifier -> field_identifier) != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    (*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);\n                    iVar50 = (int)unaff_s4->nCol;\n                  }" { (expression_statement "(*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49);" (call_expression "(*(code *)(puVar28 + 0x7228))(pParse,pChanges->a[iVar18].pExpr,ppVVar49)" (parenthesized_expression "(*(code *)(puVar28 + 0x7228))" ( (pointer_expression "*(code *)(puVar28 + 0x7228)" * (cast_expression "(code *)(puVar28 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar28 + 0x7228)" ( (binary_expression "puVar28 + 0x7228" identifier + number_literal) )))) )) (argument_list "(pParse,pChanges->a[iVar18].pExpr,ppVVar49)" ( identifier , (field_expression "pChanges->a[iVar18].pExpr" (subscript_expression "pChanges->a[iVar18]" (field_expression "pChanges->a" identifier -> field_identifier) [ identifier ]) . field_identifier) , identifier ))) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) })) }) (else_clause "else {\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }" else (compound_statement "{\n                  iVar36 = local_d0;\n                  if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }\n                  (*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);\n                  iVar50 = (int)unaff_s4->nCol;\n                }" { (expression_statement "iVar36 = local_d0;" (assignment_expression "iVar36 = local_d0" identifier = identifier) ;) (if_statement "if (local_e8 != (Select *)0x0) {\n                    iVar36 = iVar50;\n                  }" if (parenthesized_expression "(local_e8 != (Select *)0x0)" ( (binary_expression "local_e8 != (Select *)0x0" identifier != (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar36 = iVar50;\n                  }" { (expression_statement "iVar36 = iVar50;" (assignment_expression "iVar36 = iVar50" identifier = identifier) ;) })) (expression_statement "(*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49);" (call_expression "(*pcVar24)(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar18 + iVar36,ppVVar49)" ( identifier , number_literal , identifier , (binary_expression "iVar18 + iVar36" identifier + identifier) , identifier ))) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) }))))) }) (else_clause "else if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }" else (if_statement "if ((uVar5 & 0x20) != 0) {\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }" if (parenthesized_expression "((uVar5 & 0x20) != 0)" ( (binary_expression "(uVar5 & 0x20) != 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n              }" { (expression_statement "ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);" (assignment_expression "ppVVar49 = (Vdbe **)((int)ppVVar49 + -1)" identifier = (cast_expression "(Vdbe **)((int)ppVVar49 + -1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar49 + -1)" ( (binary_expression "(int)ppVVar49 + -1" (cast_expression "(int)ppVVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })))) }))) (expression_statement "uVar45 = uVar45 + 1;" (assignment_expression "uVar45 = uVar45 + 1" identifier = (binary_expression "uVar45 + 1" identifier + number_literal)) ;) (expression_statement "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);" (assignment_expression "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1)" identifier = (cast_expression "(Vdbe **)((int)ppVVar49 + 1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar49 + 1)" ( (binary_expression "(int)ppVVar49 + 1" (cast_expression "(int)ppVVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar45 < iVar50)" ( (binary_expression "(int)uVar45 < iVar50" (cast_expression "(int)uVar45" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (if_statement "if ((unaff_s4->tabFlags & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }" if (parenthesized_expression "((unaff_s4->tabFlags & 0x60) != 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x60) != 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x60)" ( (binary_expression "unaff_s4->tabFlags & 0x60" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(pParse,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((tmask & 1U) == 0) {\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" if (parenthesized_expression "((tmask & 1U) == 0)" ( (binary_expression "(tmask & 1U) == 0" (parenthesized_expression "(tmask & 1U)" ( (binary_expression "tmask & 1U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }\n        }" { (expression_statement "unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (if_statement "if (local_e8 == (Select *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);\n            if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n          }" { (labeled_statement "LAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x2f14)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x2f14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x2f14)" ( (binary_expression "PTR_LAB_000f52c8 + -0x2f14" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,piVar44,local_f0,local_c4,local_c8,local_e0,uVar17,\n                       onError & 0xff,local_d4,&bReplace,piVar12,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "onError & 0xff" identifier & number_literal) , identifier , (pointer_expression "&bReplace" & identifier) , identifier , number_literal ))) ;)) (if_statement "if ((bReplace != 0) || (uVar17 != 0)) {\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" if (parenthesized_expression "((bReplace != 0) || (uVar17 != 0))" ( (binary_expression "(bReplace != 0) || (uVar17 != 0)" (parenthesized_expression "(bReplace != 0)" ( (binary_expression "bReplace != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))) )) (compound_statement "{\n              if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" { (if_statement "if (local_ec == (Index *)0x0) {\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" else (compound_statement "{\n                (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (iVar15 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar17 != 0) goto LAB_000b8ea8;\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" { (labeled_statement "LAB_000b8f88:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x87,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (goto_statement "goto LAB_000b8fac;" goto statement_identifier ;) })) (if_statement "if (uVar17 != 0) goto LAB_000b8ea8;" if (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8ea8;" goto statement_identifier ;)) }) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }" else (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,local_e0,0,piVar12,uVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,local_e0,0,piVar12,uVar17)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,local_f0,local_c4,piVar44,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) goto LAB_000b8f88;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8f88;" goto statement_identifier ;)) (labeled_statement "LAB_000b8fac:\n              if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" statement_identifier : (if_statement "if ((1 < iVar15) || (uVar17 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" if (parenthesized_expression "((1 < iVar15) || (uVar17 != 0))" ( (binary_expression "(1 < iVar15) || (uVar17 != 0)" (parenthesized_expression "(1 < iVar15)" ( (binary_expression "1 < iVar15" number_literal < identifier) )) || (parenthesized_expression "(uVar17 != 0)" ( (binary_expression "uVar17 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" { (labeled_statement "LAB_000b8ea8:\n                (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7a,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) }))) (if_statement "if (iVar15 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }" if (parenthesized_expression "(iVar15 != 0)" ( (binary_expression "iVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);\n                if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);\n                if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }\n                goto LAB_000b8698;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(pParse,unaff_s4,0,local_c8,piVar12,uVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,0,local_c8,piVar12,uVar17)" ( identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (uVar3 == '\x02') {\n                  uVar27 = 6;\n                }\n                else {\n                  uVar27 = 4;\n                }" if (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar27 = 6;\n                }" { (expression_statement "uVar27 = 6;" (assignment_expression "uVar27 = 6" identifier = number_literal) ;) }) (else_clause "else {\n                  uVar27 = 4;\n                }" else (compound_statement "{\n                  uVar27 = 4;\n                }" { (expression_statement "uVar27 = 4;" (assignment_expression "uVar27 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                          (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if ((pParse->db->flags & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }" if (parenthesized_expression "((pParse->db->flags & 0x4000) != 0)" ( (binary_expression "(pParse->db->flags & 0x4000) != 0" (parenthesized_expression "(pParse->db->flags & 0x4000)" ( (binary_expression "pParse->db->flags & 0x4000" (field_expression "pParse->db->flags" (field_expression "pParse->db" identifier -> field_identifier) -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);\n                }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x15ac)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x15ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x15ac)" ( (binary_expression "PTR_LAB_000f52c8 + -0x15ac" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,pChanges,local_e0,piVar12,uVar17)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8698;" goto statement_identifier ;) })) }))) (if_statement "if (uVar3 == '\x02') {\n              uVar27 = 6;\n            }\n            else {\n              uVar27 = 4;\n            }" if (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n              uVar27 = 6;\n            }" { (expression_statement "uVar27 = 6;" (assignment_expression "uVar27 = 6" identifier = number_literal) ;) }) (else_clause "else {\n              uVar27 = 4;\n            }" else (compound_statement "{\n              uVar27 = 4;\n            }" { (expression_statement "uVar27 = 4;" (assignment_expression "uVar27 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                      (pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4,local_f0,local_c4,local_c8,piVar44,uVar27,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" else (compound_statement "{\n          (*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);\n          sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);\n          if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x336c))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x336c)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x336c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x336c)" ( (binary_expression "PTR_DAT_000f52e8 + -0x336c" identifier + number_literal) )))) )) (argument_list "(local_f8,unaff_s4,local_90)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(WhereInfo *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (expression_statement "sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4);" (call_expression "sqlite3CodeRowTrigger\n                    (pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4)" identifier (argument_list "(pParse,(Trigger *)local_e4,0x7f,pChanges,1,unaff_s4,(int)local_e0,onError,\n                     (int)local_d4)" ( identifier , (cast_expression "(Trigger *)local_e4" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier , number_literal , identifier , (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (if_statement "if (local_e8 == (Select *)0x0) {\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" if (parenthesized_expression "(local_e8 == (Select *)0x0)" ( (binary_expression "local_e8 == (Select *)0x0" identifier == (cast_expression "(Select *)0x0" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar18 = (int)unaff_s4->nCol;\n            pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);\n            ppVVar49 = local_90;\n            iVar50 = 0;\n            while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }\n            if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" { (if_statement "if (local_ec == (Index *)0x0) {\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" if (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" else (compound_statement "{\n              (*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4660)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "iVar18 = (int)unaff_s4->nCol;" (assignment_expression "iVar18 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pSVar51 = (Select *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(Select *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "ppVVar49 = local_90;" (assignment_expression "ppVVar49 = local_90" identifier = identifier) ;) (expression_statement "iVar50 = 0;" (assignment_expression "iVar50 = 0" identifier = number_literal) ;) (while_statement "while (iVar50 < iVar18) {\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }" while (parenthesized_expression "(iVar50 < iVar18)" ( (binary_expression "iVar50 < iVar18" identifier < identifier) )) (compound_statement "{\n              uVar5 = unaff_s4->aCol[iVar50].colFlags;\n              if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }\n            }" { (expression_statement "uVar5 = unaff_s4->aCol[iVar50].colFlags;" (assignment_expression "uVar5 = unaff_s4->aCol[iVar50].colFlags" identifier = (field_expression "unaff_s4->aCol[iVar50].colFlags" (subscript_expression "unaff_s4->aCol[iVar50]" (field_expression "unaff_s4->aCol" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar5 & 0x60) == 0) {\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }\n              else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }" if (parenthesized_expression "((uVar5 & 0x60) == 0)" ( (binary_expression "(uVar5 & 0x60) == 0" (parenthesized_expression "(uVar5 & 0x60)" ( (binary_expression "uVar5 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;\n                (*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);\n                iVar18 = (int)unaff_s4->nCol;\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n                local_e8 = pSVar51;\n              }" { (if_statement "if ((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)) goto LAB_000b95b4;" if (parenthesized_expression "((-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey))" ( (binary_expression "(-1 < piVar12[iVar50]) || (iVar50 == unaff_s4->iPKey)" (parenthesized_expression "(-1 < piVar12[iVar50])" ( (binary_expression "-1 < piVar12[iVar50]" number_literal < (subscript_expression "piVar12[iVar50]" identifier [ identifier ])) )) || (parenthesized_expression "(iVar50 == unaff_s4->iPKey)" ( (binary_expression "iVar50 == unaff_s4->iPKey" identifier == (field_expression "unaff_s4->iPKey" identifier -> field_identifier)) ))) )) (goto_statement "goto LAB_000b95b4;" goto statement_identifier ;)) (expression_statement "(*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49);" (call_expression "(*(code *)pSVar51)(local_f8,unaff_s4,local_f0,iVar50,ppVVar49)" (parenthesized_expression "(*(code *)pSVar51)" ( (pointer_expression "*(code *)pSVar51" * (cast_expression "(code *)pSVar51" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8,unaff_s4,local_f0,iVar50,ppVVar49)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar18 = (int)unaff_s4->nCol;" (assignment_expression "iVar18 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);" (assignment_expression "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1)" identifier = (cast_expression "(Vdbe **)((int)ppVVar49 + 1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar49 + 1)" ( (binary_expression "(int)ppVVar49 + 1" (cast_expression "(int)ppVVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = pSVar51;" (assignment_expression "local_e8 = pSVar51" identifier = identifier) ;) }) (else_clause "else {\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }" else (compound_statement "{\n                if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }\nLAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);\n                iVar50 = iVar50 + 1;\n              }" { (if_statement "if ((uVar5 & 0x20) != 0) {\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }" if (parenthesized_expression "((uVar5 & 0x20) != 0)" ( (binary_expression "(uVar5 & 0x20) != 0" (parenthesized_expression "(uVar5 & 0x20)" ( (binary_expression "uVar5 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);\n                }" { (expression_statement "ppVVar49 = (Vdbe **)((int)ppVVar49 + -1);" (assignment_expression "ppVVar49 = (Vdbe **)((int)ppVVar49 + -1)" identifier = (cast_expression "(Vdbe **)((int)ppVVar49 + -1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar49 + -1)" ( (binary_expression "(int)ppVVar49 + -1" (cast_expression "(int)ppVVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) })) (labeled_statement "LAB_000b95b4:\n                ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);" statement_identifier : (expression_statement "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1);" (assignment_expression "ppVVar49 = (Vdbe **)((int)ppVVar49 + 1)" identifier = (cast_expression "(Vdbe **)((int)ppVVar49 + 1)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppVVar49 + 1)" ( (binary_expression "(int)ppVVar49 + 1" (cast_expression "(int)ppVVar49" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "iVar50 = iVar50 + 1;" (assignment_expression "iVar50 = iVar50 + 1" identifier = (binary_expression "iVar50 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4->tabFlags & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }" if (parenthesized_expression "((unaff_s4->tabFlags & 0x60) != 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x60) != 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x60)" ( (binary_expression "unaff_s4->tabFlags & 0x60" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(pParse,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(pParse,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8da4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" statement_identifier : (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x52,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) }))) (expression_statement "in_stack_fffffed4 = unaff_s4;" (assignment_expression "in_stack_fffffed4 = unaff_s4" identifier = identifier) ;) (expression_statement "in_stack_fffffed8 = local_e0;" (assignment_expression "in_stack_fffffed8 = local_e0" identifier = identifier) ;) (expression_statement "(*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4);" (call_expression "(*(code *)unaff_s3)(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4)" (parenthesized_expression "(*(code *)unaff_s3)" ( (pointer_expression "*(code *)unaff_s3" * (cast_expression "(code *)unaff_s3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pParse,local_e4,0x7f,pChanges,2,unaff_s4,local_e0,onError,local_d4)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (uVar3 == '\x01') {\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }\n        else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(uVar3 == '\x01')" ( (binary_expression "uVar3 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n        }" { (labeled_statement "LAB_000b881c:\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);" statement_identifier : (expression_statement "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);" (assignment_expression "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" identifier = (cast_expression "(WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4a64)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4a64" identifier + number_literal) )))) ;)) }) (else_clause "else if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (if_statement "if (uVar3 == '\x02') {\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(uVar3 == '\x02')" ( (binary_expression "uVar3 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }" { (expression_statement "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);" (assignment_expression "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" identifier = (cast_expression "(WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4a64)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*(code *)pWVar46)(local_f8,local_d4);" (call_expression "(*(code *)pWVar46)(local_f8,local_d4)" (parenthesized_expression "(*(code *)pWVar46)" ( (pointer_expression "*(code *)pWVar46" * (cast_expression "(code *)pWVar46" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) }) (else_clause "else {\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (compound_statement "{\n          if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);\n          (*(code *)pWVar46)(local_f8,local_d4);\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" { (if_statement "if ((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)) {\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" if (parenthesized_expression "((local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0))" ( (binary_expression "(local_ec == (Index *)0x0) && (pWVar46 == (WhereInfo *)0x0)" (parenthesized_expression "(local_ec == (Index *)0x0)" ( (binary_expression "local_ec == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pWVar46 == (WhereInfo *)0x0)" ( (binary_expression "pWVar46 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0xb,0,local_d4,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b881c;" goto statement_identifier ;) })) (expression_statement "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64);" (assignment_expression "pWVar46 = (WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" identifier = (cast_expression "(WhereInfo *)(PTR_DAT_000f52e8 + -0x4a64)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x4a64)" ( (binary_expression "PTR_DAT_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*(code *)pWVar46)(local_f8,local_d4);" (call_expression "(*(code *)pWVar46)(local_f8,local_d4)" (parenthesized_expression "(*(code *)pWVar46)" ( (pointer_expression "*(code *)pWVar46" * (cast_expression "(code *)pWVar46" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,5,local_cc,local_a0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s3 = local_f8;" (assignment_expression "unaff_s3 = local_f8" identifier = identifier) ;) }))))) (expression_statement "(*(code *)pWVar46)(local_f8,local_b0);" (call_expression "(*(code *)pWVar46)(local_f8,local_b0)" (parenthesized_expression "(*(code *)pWVar46)" ( (pointer_expression "*(code *)pWVar46" * (cast_expression "(code *)pWVar46" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_f8,local_b0)" ( identifier , identifier ))) ;) (if_statement "if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }" if (parenthesized_expression "((((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0))" ( (binary_expression "(((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)) && (pParse->pAinc != (AutoincInfo *)0x0)" (parenthesized_expression "(((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0))" ( (binary_expression "((pParse->nested == '\0') && (pParse->pTriggerTab == (Table *)0x0)) &&\n            (local_100 == (AggInfo *)0x0)" (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)) ))) )) && (parenthesized_expression "(local_100 == (AggInfo *)0x0)" ( (binary_expression "local_100 == (AggInfo *)0x0" identifier == (cast_expression "(AggInfo *)0x0" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(pParse->pAinc != (AutoincInfo *)0x0)" ( (binary_expression "pParse->pAinc != (AutoincInfo *)0x0" (field_expression "pParse->pAinc" identifier -> field_identifier) != (cast_expression "(AutoincInfo *)0x0" ( (type_descriptor "AutoincInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n          (*(code *)(PTR_000f5314 + 0x78e0))(pParse);\n        }" { (expression_statement "(*(code *)(PTR_000f5314 + 0x78e0))(pParse);" (call_expression "(*(code *)(PTR_000f5314 + 0x78e0))(pParse)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x78e0))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x78e0)" * (cast_expression "(code *)(PTR_000f5314 + 0x78e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x78e0)" ( (binary_expression "PTR_000f5314 + 0x78e0" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))) ;) })) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pWVar46 = local_f8;\n          if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }\n        }" { (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x50,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7e44)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7e44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7e44)" ( (binary_expression "PTR_LAB_000f52ec + 0x7e44" identifier + number_literal) )))) )) (argument_list "(local_f8,1)" ( identifier , number_literal ))) ;) (expression_statement "pWVar46 = local_f8;" (assignment_expression "pWVar46 = local_f8" identifier = identifier) ;) (if_statement "if (*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0') {\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }" if (parenthesized_expression "(*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0')" ( (binary_expression "*(char *)((int)&local_f8->pParse->writeMask + 1) == '\0'" (pointer_expression "*(char *)((int)&local_f8->pParse->writeMask + 1)" * (cast_expression "(char *)((int)&local_f8->pParse->writeMask + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_f8->pParse->writeMask + 1)" ( (binary_expression "(int)&local_f8->pParse->writeMask + 1" (cast_expression "(int)&local_f8->pParse->writeMask" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_f8->pParse->writeMask" & (field_expression "local_f8->pParse->writeMask" (field_expression "local_f8->pParse" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0);" (call_expression "(*(code *)(PTR_LAB_000f5300 + -0x1e28))\n                      (local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5300 + -0x1e28))" ( (pointer_expression "*(code *)(PTR_LAB_000f5300 + -0x1e28)" * (cast_expression "(code *)(PTR_LAB_000f5300 + -0x1e28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5300 + -0x1e28)" ( (binary_expression "PTR_LAB_000f5300 + -0x1e28" identifier + number_literal) )))) )) (argument_list "(local_f8,0,0,PTR_yy_shift_ofst_376__000f52d4 + -0x67ec,0)" ( identifier , number_literal , number_literal , (binary_expression "PTR_yy_shift_ofst_376__000f52d4 + -0x67ec" identifier + number_literal) , number_literal ))) ;) })) })) }) (else_clause "else {\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }" else (compound_statement "{\n        local_e4 = (Schema *)unaff_s4->pVTable;\n        pWVar46 = (WhereInfo *)pParse->pVdbe;\n        psVar35 = pParse->db;\n        if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }\n        local_100 = (AggInfo *)pParse->nTab;\n        iVar18 = unaff_s4->nCol + 2;\n        iVar15 = pTabList->a[0].iCursor;\n        pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);\n        pParse->nTab = (int)&local_100->useSortingIdx;\n        local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);\n        local_e0 = (sqlite3 *)pParse->nMem;\n        iVar50 = pTabList->nSrc;\n        puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);\n        local_e8 = (Select *)((int)&local_e0->pVfs + 1);\n        pParse->nMem = (int)puVar33;\n        if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }\n        pWVar47 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);\n        uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);\n        (*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);\n        if (onError == 0xb) {\n          onError = 2;\n        }\n        iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n        if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }\n        pPVar26 = pParse->pToplevel;\n        if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }\n        pPVar26->mayAbort = '\x01';\n        if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }\n      }" { (expression_statement "local_e4 = (Schema *)unaff_s4->pVTable;" (assignment_expression "local_e4 = (Schema *)unaff_s4->pVTable" identifier = (cast_expression "(Schema *)unaff_s4->pVTable" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "unaff_s4->pVTable" identifier -> field_identifier))) ;) (expression_statement "pWVar46 = (WhereInfo *)pParse->pVdbe;" (assignment_expression "pWVar46 = (WhereInfo *)pParse->pVdbe" identifier = (cast_expression "(WhereInfo *)pParse->pVdbe" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->pVdbe" identifier -> field_identifier))) ;) (expression_statement "psVar35 = pParse->db;" (assignment_expression "psVar35 = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (if_statement "if (local_e4 != (Schema *)0x0) {\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }" if (parenthesized_expression "(local_e4 != (Schema *)0x0)" ( (binary_expression "local_e4 != (Schema *)0x0" identifier != (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }\n        }" { (expression_statement "psVar19 = (sqlite3 *)local_e4->schema_cookie;" (assignment_expression "psVar19 = (sqlite3 *)local_e4->schema_cookie" identifier = (cast_expression "(sqlite3 *)local_e4->schema_cookie" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_e4->schema_cookie" identifier -> field_identifier))) ;) (while_statement "while ((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))) {\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }" while (parenthesized_expression "((psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0)))" ( (parenthesized_expression "(psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0))" ( (binary_expression "psVar19 != psVar35 &&\n                 (local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0)" (binary_expression "psVar19 != psVar35" identifier != identifier) && (parenthesized_expression "(local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0)" ( (comma_expression "local_e4 = *(Schema **)&local_e4->idxHash, local_e4 != (Schema *)0x0" (assignment_expression "local_e4 = *(Schema **)&local_e4->idxHash" identifier = (pointer_expression "*(Schema **)&local_e4->idxHash" * (cast_expression "(Schema **)&local_e4->idxHash" ( (type_descriptor "Schema **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_e4->idxHash" & (field_expression "local_e4->idxHash" identifier -> field_identifier))))) , (binary_expression "local_e4 != (Schema *)0x0" identifier != (cast_expression "(Schema *)0x0" ( (type_descriptor "Schema *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n            psVar19 = (sqlite3 *)local_e4->schema_cookie;\n          }" { (expression_statement "psVar19 = (sqlite3 *)local_e4->schema_cookie;" (assignment_expression "psVar19 = (sqlite3 *)local_e4->schema_cookie" identifier = (cast_expression "(sqlite3 *)local_e4->schema_cookie" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "local_e4->schema_cookie" identifier -> field_identifier))) ;) })) })) (expression_statement "local_100 = (AggInfo *)pParse->nTab;" (assignment_expression "local_100 = (AggInfo *)pParse->nTab" identifier = (cast_expression "(AggInfo *)pParse->nTab" ( (type_descriptor "AggInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->nTab" identifier -> field_identifier))) ;) (expression_statement "iVar18 = unaff_s4->nCol + 2;" (assignment_expression "iVar18 = unaff_s4->nCol + 2" identifier = (binary_expression "unaff_s4->nCol + 2" (field_expression "unaff_s4->nCol" identifier -> field_identifier) + number_literal)) ;) (expression_statement "iVar15 = pTabList->a[0].iCursor;" (assignment_expression "iVar15 = pTabList->a[0].iCursor" identifier = (field_expression "pTabList->a[0].iCursor" (subscript_expression "pTabList->a[0]" (field_expression "pTabList->a" identifier -> field_identifier) [ number_literal ]) . field_identifier)) ;) (expression_statement "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8);" (assignment_expression "pcVar16 = (code *)(PTR_DAT_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x47a8)" ( (binary_expression "PTR_DAT_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "pParse->nTab = (int)&local_100->useSortingIdx;" (assignment_expression "pParse->nTab = (int)&local_100->useSortingIdx" (field_expression "pParse->nTab" identifier -> field_identifier) = (cast_expression "(int)&local_100->useSortingIdx" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_100->useSortingIdx" & (field_expression "local_100->useSortingIdx" identifier -> field_identifier)))) ;) (expression_statement "local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0);" (assignment_expression "local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0)" identifier = (cast_expression "(WhereInfo *)(*pcVar16)(pWVar46,100,local_100,iVar18,0)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar16)(pWVar46,100,local_100,iVar18,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,100,local_100,iVar18,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "local_e0 = (sqlite3 *)pParse->nMem;" (assignment_expression "local_e0 = (sqlite3 *)pParse->nMem" identifier = (cast_expression "(sqlite3 *)pParse->nMem" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pParse->nMem" identifier -> field_identifier))) ;) (expression_statement "iVar50 = pTabList->nSrc;" (assignment_expression "iVar50 = pTabList->nSrc" identifier = (field_expression "pTabList->nSrc" identifier -> field_identifier)) ;) (expression_statement "puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18);" (assignment_expression "puVar33 = (undefined1 *)((int)&local_e0->pVfs + iVar18)" identifier = (cast_expression "(undefined1 *)((int)&local_e0->pVfs + iVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + iVar18)" ( (binary_expression "(int)&local_e0->pVfs + iVar18" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "local_e8 = (Select *)((int)&local_e0->pVfs + 1);" (assignment_expression "local_e8 = (Select *)((int)&local_e0->pVfs + 1)" identifier = (cast_expression "(Select *)((int)&local_e0->pVfs + 1)" ( (type_descriptor "Select *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + 1)" ( (binary_expression "(int)&local_e0->pVfs + 1" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "pParse->nMem = (int)puVar33;" (assignment_expression "pParse->nMem = (int)puVar33" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)puVar33" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar50 < 2) {\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }" if (parenthesized_expression "(iVar50 < 2)" ( (binary_expression "iVar50 < 2" identifier < number_literal) )) (compound_statement "{\n          puVar32 = puVar33 + 2;\n          in_stack_fffffed8 = (sqlite3 *)0x0;\n          pParse->nMem = (int)puVar32;\n          in_stack_fffffed4 = (Table *)0x4;\n          unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);\n          pTVar48 = unaff_s4;\n          if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;\n          iVar50 = (int)unaff_s4->nCol;\n          local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);\n          iVar36 = 0;\n          pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar44 = piVar12;\n          while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }\n          if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }\n          aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];\n          aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];\n          psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;\n          if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);\n          (*pcVar16)(pWVar46,0x74,iVar15,0,0);\n          local_e0 = psVar35;\n          local_b0 = psVar35;\n        }" { (expression_statement "puVar32 = puVar33 + 2;" (assignment_expression "puVar32 = puVar33 + 2" identifier = (binary_expression "puVar33 + 2" identifier + number_literal)) ;) (expression_statement "in_stack_fffffed8 = (sqlite3 *)0x0;" (assignment_expression "in_stack_fffffed8 = (sqlite3 *)0x0" identifier = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pParse->nMem = (int)puVar32;" (assignment_expression "pParse->nMem = (int)puVar32" (field_expression "pParse->nMem" identifier -> field_identifier) = (cast_expression "(int)puVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "in_stack_fffffed4 = (Table *)0x4;" (assignment_expression "in_stack_fffffed4 = (Table *)0x4" identifier = (cast_expression "(Table *)0x4" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0);" (assignment_expression "unaff_s3 = sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0)" identifier = (call_expression "sqlite3WhereBegin(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0)" identifier (argument_list "(pParse,pTabList,pWhere,(ExprList *)0x0,(ExprList *)0x0,4,0)" ( 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) , number_literal , number_literal )))) ;) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) (if_statement "if (unaff_s3 == (WhereInfo *)0x0) goto LAB_000b7aa8;" if (parenthesized_expression "(unaff_s3 == (WhereInfo *)0x0)" ( (binary_expression "unaff_s3 == (WhereInfo *)0x0" identifier == (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3);" (assignment_expression "local_d4 = (sqlite3 *)((int)&local_e0->pVfs + 3)" identifier = (cast_expression "(sqlite3 *)((int)&local_e0->pVfs + 3)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + 3)" ( (binary_expression "(int)&local_e0->pVfs + 3" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar36 = 0;" (assignment_expression "iVar36 = 0" identifier = number_literal) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_000f5308 + 0x7228)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) ;) (expression_statement "piVar44 = piVar12;" (assignment_expression "piVar44 = piVar12" identifier = identifier) ;) (while_statement "while (iVar36 < iVar50) {\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }" while (parenthesized_expression "(iVar36 < iVar50)" ( (binary_expression "iVar36 < iVar50" identifier < identifier) )) (compound_statement "{\n            if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }\n          }" { (if_statement "if (*piVar44 < 0) {\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }\n            else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }" if (parenthesized_expression "(*piVar44 < 0)" ( (binary_expression "*piVar44 < 0" (pointer_expression "*piVar44" * identifier) < number_literal) )) (compound_statement "{\n              (*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);\n              iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;\n              if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }\n            }" { (expression_statement "(*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36);" (call_expression "(*pcVar16)(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0xa6,iVar15,iVar36,(int)&local_d4->pVfs + iVar36)" ( identifier , number_literal , identifier , identifier , (binary_expression "(int)&local_d4->pVfs + iVar36" (cast_expression "(int)&local_d4->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_d4->pVfs" & (field_expression "local_d4->pVfs" identifier -> field_identifier))) + identifier) ))) ;) (expression_statement "iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;" (assignment_expression "iVar25 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator" identifier = (pointer_expression "*(int *)&(pWVar46->sWC).aStatic[0].eOperator" * (cast_expression "(int *)&(pWVar46->sWC).aStatic[0].eOperator" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].eOperator" & (field_expression "(pWVar46->sWC).aStatic[0].eOperator" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) ;) (if_statement "if (iVar25 < 1) {\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }\n              else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }" if (parenthesized_expression "(iVar25 < 1)" ( (binary_expression "iVar25 < 1" identifier < number_literal) )) (compound_statement "{\n                iVar50 = (int)unaff_s4->nCol;\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n              }" { (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "iVar36 = iVar36 + 1;" (assignment_expression "iVar36 = iVar36 + 1" identifier = (binary_expression "iVar36 + 1" identifier + number_literal)) ;) (expression_statement "piVar44 = piVar44 + 1;" (assignment_expression "piVar44 = piVar44 + 1" identifier = (binary_expression "piVar44 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }" else (compound_statement "{\n                iVar36 = iVar36 + 1;\n                piVar44 = piVar44 + 1;\n                iVar50 = (int)unaff_s4->nCol;\n                *(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;\n              }" { (expression_statement "iVar36 = iVar36 + 1;" (assignment_expression "iVar36 = iVar36 + 1" identifier = (binary_expression "iVar36 + 1" identifier + number_literal)) ;) (expression_statement "piVar44 = piVar44 + 1;" (assignment_expression "piVar44 = piVar44 + 1" identifier = (binary_expression "piVar44 + 1" identifier + number_literal)) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) (expression_statement "*(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1;" (assignment_expression "*(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) = 1" (pointer_expression "*(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" * (cast_expression "(undefined2 *)\n                 (iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" ( (binary_expression "iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12" (binary_expression "iVar25 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb" (binary_expression "iVar25 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)&(pWVar46->sWC).aStatic[0].truthProb" * (cast_expression "(int *)&(pWVar46->sWC).aStatic[0].truthProb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].truthProb" & (field_expression "(pWVar46->sWC).aStatic[0].truthProb" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }" else (compound_statement "{\n              if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }\n              iVar36 = iVar36 + 1;\n              piVar44 = piVar44 + 1;\n            }" { (if_statement "if (pParse->pVdbe != (Vdbe *)0x0) {\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }" if (parenthesized_expression "(pParse->pVdbe != (Vdbe *)0x0)" ( (binary_expression "pParse->pVdbe != (Vdbe *)0x0" (field_expression "pParse->pVdbe" identifier -> field_identifier) != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);\n                iVar50 = (int)unaff_s4->nCol;\n              }" { (expression_statement "(*pcVar24)(pParse,pChanges->a[*piVar44].pExpr);" (call_expression "(*pcVar24)(pParse,pChanges->a[*piVar44].pExpr)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pParse,pChanges->a[*piVar44].pExpr)" ( identifier , (field_expression "pChanges->a[*piVar44].pExpr" (subscript_expression "pChanges->a[*piVar44]" (field_expression "pChanges->a" identifier -> field_identifier) [ (pointer_expression "*piVar44" * identifier) ]) . field_identifier) ))) ;) (expression_statement "iVar50 = (int)unaff_s4->nCol;" (assignment_expression "iVar50 = (int)unaff_s4->nCol" identifier = (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier))) ;) })) (expression_statement "iVar36 = iVar36 + 1;" (assignment_expression "iVar36 = iVar36 + 1" identifier = (binary_expression "iVar36 + 1" identifier + number_literal)) ;) (expression_statement "piVar44 = piVar44 + 1;" (assignment_expression "piVar44 = piVar44 + 1" identifier = (binary_expression "piVar44 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4->tabFlags & 0x80) == 0) {\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }\n          else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }" if (parenthesized_expression "((unaff_s4->tabFlags & 0x80) == 0)" ( (binary_expression "(unaff_s4->tabFlags & 0x80) == 0" (parenthesized_expression "(unaff_s4->tabFlags & 0x80)" ( (binary_expression "unaff_s4->tabFlags & 0x80" (field_expression "unaff_s4->tabFlags" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            (*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }\n          }" { (expression_statement "(*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0);" (call_expression "(*pcVar16)(pWVar46,0x7f,iVar15,local_e8,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x7f,iVar15,local_e8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_b4 == (code *)0x0) {\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }\n            else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);\n            }" { (expression_statement "(*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0);" (call_expression "(*pcVar16)(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x7f,iVar15,(undefined1 *)((int)&local_e0->pVfs + 2),0)" ( identifier , number_literal , identifier , (cast_expression "(undefined1 *)((int)&local_e0->pVfs + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + 2)" ( (binary_expression "(int)&local_e0->pVfs + 2" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + number_literal) ))) , number_literal ))) ;) }) (else_clause "else if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }" else (if_statement "if (pParse->pVdbe != (Vdbe *)0x0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }" if (parenthesized_expression "(pParse->pVdbe != (Vdbe *)0x0)" ( (binary_expression "pParse->pVdbe != (Vdbe *)0x0" (field_expression "pParse->pVdbe" identifier -> field_identifier) != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(pParse)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(pParse)" ( identifier ))) ;) })))) }) (else_clause "else {\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }" else (compound_statement "{\n            pIVar31 = unaff_s4->pIndex;\n            while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }\n            local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;\n            (*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);\n            (*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);\n          }" { (expression_statement "pIVar31 = unaff_s4->pIndex;" (assignment_expression "pIVar31 = unaff_s4->pIndex" identifier = (field_expression "unaff_s4->pIndex" identifier -> field_identifier)) ;) (while_statement "while( true ) {\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }\n              if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;\n              pIVar31 = pIVar31->pNext;\n            }" { (if_statement "if (pIVar31 == (Index *)0x0) {\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }" if (parenthesized_expression "(pIVar31 == (Index *)0x0)" ( (binary_expression "pIVar31 == (Index *)0x0" identifier == (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Does not return */\n                pcVar16 = (code *)trap(0);\n                (*pcVar16)();\n              }" { comment (expression_statement "pcVar16 = (code *)trap(0);" (assignment_expression "pcVar16 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(*pcVar16)();" (call_expression "(*pcVar16)()" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((pIVar31->field_0x37 & 0xc0) == 0x80) break;" if (parenthesized_expression "((pIVar31->field_0x37 & 0xc0) == 0x80)" ( (binary_expression "(pIVar31->field_0x37 & 0xc0) == 0x80" (parenthesized_expression "(pIVar31->field_0x37 & 0xc0)" ( (binary_expression "pIVar31->field_0x37 & 0xc0" (field_expression "pIVar31->field_0x37" identifier -> field_identifier) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pIVar31 = pIVar31->pNext;" (assignment_expression "pIVar31 = pIVar31->pNext" identifier = (field_expression "pIVar31->pNext" identifier -> field_identifier)) ;) })) (expression_statement "local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn;" (assignment_expression "local_d4 = (sqlite3 *)(int)*pIVar31->aiColumn" identifier = (cast_expression "(sqlite3 *)(int)*pIVar31->aiColumn" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)*pIVar31->aiColumn" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pIVar31->aiColumn" * (field_expression "pIVar31->aiColumn" identifier -> field_identifier))))) ;) (expression_statement "(*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8);" (call_expression "(*pcVar16)(pWVar46,0xa6,iVar15,local_d4,local_e8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0xa6,iVar15,local_d4,local_e8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0);" (call_expression "(*pcVar16)(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,\n                       (undefined1 *)((int)&local_e0->pVfs + 2),0)" ( identifier , number_literal , (binary_expression "(int)((int)&local_e0->pVfs + 3) + (int)local_d4" (cast_expression "(int)((int)&local_e0->pVfs + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&local_e0->pVfs + 3)" ( (binary_expression "(int)&local_e0->pVfs + 3" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + number_literal) ))) + (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) , (cast_expression "(undefined1 *)((int)&local_e0->pVfs + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_e0->pVfs + 2)" ( (binary_expression "(int)&local_e0->pVfs + 2" (cast_expression "(int)&local_e0->pVfs" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_e0->pVfs" & (field_expression "local_e0->pVfs" identifier -> field_identifier))) + number_literal) ))) , number_literal ))) ;) }))) (expression_statement "aiCurOnePass[0] = unaff_s3->aiCurOnePass[0];" (assignment_expression "aiCurOnePass[0] = unaff_s3->aiCurOnePass[0]" (subscript_expression "aiCurOnePass[0]" identifier [ number_literal ]) = (subscript_expression "unaff_s3->aiCurOnePass[0]" (field_expression "unaff_s3->aiCurOnePass" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "aiCurOnePass[1] = unaff_s3->aiCurOnePass[1];" (assignment_expression "aiCurOnePass[1] = unaff_s3->aiCurOnePass[1]" (subscript_expression "aiCurOnePass[1]" identifier [ number_literal ]) = (subscript_expression "unaff_s3->aiCurOnePass[1]" (field_expression "unaff_s3->aiCurOnePass" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass;" (assignment_expression "psVar35 = (sqlite3 *)(uint)unaff_s3->eOnePass" identifier = (cast_expression "(sqlite3 *)(uint)unaff_s3->eOnePass" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)unaff_s3->eOnePass" ( (type_descriptor "uint" type_identifier) ) (field_expression "unaff_s3->eOnePass" identifier -> field_identifier)))) ;) (if_statement "if (psVar35 == (sqlite3 *)0x0) {\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }" if (parenthesized_expression "(psVar35 == (sqlite3 *)0x0)" ( (binary_expression "psVar35 == (sqlite3 *)0x0" identifier == (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pPVar26 = pParse->pToplevel;\n            if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }\n            pPVar26->isMultiWrite = '\x01';\n            (*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);\n            (*pcVar16)(pWVar46,0x78,local_100,puVar32,0);\n            (*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);\n            goto LAB_000b80d0;\n          }" { (expression_statement "pPVar26 = pParse->pToplevel;" (assignment_expression "pPVar26 = pParse->pToplevel" identifier = (field_expression "pParse->pToplevel" identifier -> field_identifier)) ;) (if_statement "if (pParse->pToplevel == (Parse *)0x0) {\n              pPVar26 = pParse;\n            }" if (parenthesized_expression "(pParse->pToplevel == (Parse *)0x0)" ( (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              pPVar26 = pParse;\n            }" { (expression_statement "pPVar26 = pParse;" (assignment_expression "pPVar26 = pParse" identifier = identifier) ;) })) (expression_statement "pPVar26->isMultiWrite = '\x01';" (assignment_expression "pPVar26->isMultiWrite = '\x01'" (field_expression "pPVar26->isMultiWrite" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "(*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1);" (call_expression "(*pcVar16)(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x5b,local_e8,iVar18,puVar33 + 1)" ( identifier , number_literal , identifier , identifier , (binary_expression "puVar33 + 1" identifier + number_literal) ))) ;) (expression_statement "(*pcVar16)(pWVar46,0x78,local_100,puVar32,0);" (call_expression "(*pcVar16)(pWVar46,0x78,local_100,puVar32,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x78,local_100,puVar32,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32);" (call_expression "(*pcVar16)(pWVar46,0x79,local_100,puVar33 + 1,puVar32)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x79,local_100,puVar33 + 1,puVar32)" ( identifier , number_literal , identifier , (binary_expression "puVar33 + 1" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b80d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))\n                    (pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(pWVar46->pParse,&(pWVar46->sWC).aStatic[0].truthProb,local_f0,iVar18)" ( (field_expression "pWVar46->pParse" identifier -> field_identifier) , (pointer_expression "&(pWVar46->sWC).aStatic[0].truthProb" & (field_expression "(pWVar46->sWC).aStatic[0].truthProb" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier)) , identifier , identifier ))) ;) (expression_statement "(*pcVar16)(pWVar46,0x74,iVar15,0,0);" (call_expression "(*pcVar16)(pWVar46,0x74,iVar15,0,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x74,iVar15,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "local_e0 = psVar35;" (assignment_expression "local_e0 = psVar35" identifier = identifier) ;) (expression_statement "local_b0 = psVar35;" (assignment_expression "local_b0 = psVar35" identifier = identifier) ;) }) (else_clause "else {\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }" else (compound_statement "{\n          if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }\n          local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);\n          iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);\n          if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }\n          in_stack_fffffed4 = (Table *)pWhere;\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);\n          if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }\nLAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);\n          iVar15 = 0;\n          if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }\n        }" { (if_statement "if (local_b4 == (code *)0x0) {\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }\n          else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);\n          }" { (expression_statement "uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0);" (assignment_expression "uVar27 = (*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_000f5300 + -0x5d30))(pParse,0x4b,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5300 + -0x5d30))" ( (pointer_expression "*(code *)(PTR_LAB_000f5300 + -0x5d30)" * (cast_expression "(code *)(PTR_LAB_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5300 + -0x5d30)" ( (binary_expression "PTR_LAB_000f5300 + -0x5d30" identifier + number_literal) )))) )) (argument_list "(pParse,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }" else (compound_statement "{\n            uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);\n          }" { (expression_statement "uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35);" (assignment_expression "uVar27 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))(psVar35)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))" ( (pointer_expression "*(code *)(PTR_LAB_000f52fc + -0x7698)" * (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) )) (argument_list "(psVar35)" ( identifier )))) ;) }))) (expression_statement "local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4);" (assignment_expression "local_e0 = (sqlite3 *)(PTR_LAB_000f530c + 0x59e4)" identifier = (cast_expression "(sqlite3 *)(PTR_LAB_000f530c + 0x59e4)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x59e4)" ( (binary_expression "PTR_LAB_000f530c + 0x59e4" identifier + number_literal) )))) ;) (expression_statement "iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27);" (assignment_expression "iVar15 = (*(code *)local_e0)(pParse->db,0,uVar27)" identifier = (call_expression "(*(code *)local_e0)(pParse->db,0,uVar27)" (parenthesized_expression "(*(code *)local_e0)" ( (pointer_expression "*(code *)local_e0" * (cast_expression "(code *)local_e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pParse->db,0,uVar27)" ( (field_expression "pParse->db" identifier -> field_identifier) , number_literal , identifier )))) ;) (if_statement "if (0 < unaff_s4->nCol) {\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }" if (parenthesized_expression "(0 < unaff_s4->nCol)" ( (binary_expression "0 < unaff_s4->nCol" number_literal < (field_expression "unaff_s4->nCol" identifier -> field_identifier)) )) (compound_statement "{\n            local_f0 = (WhereInfo *)0x1;\n            pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);\n            pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (WhereInfo *)piVar12;\n            do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);\n          }" { (expression_statement "local_f0 = (WhereInfo *)0x1;" (assignment_expression "local_f0 = (WhereInfo *)0x1" identifier = (cast_expression "(WhereInfo *)0x1" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30);" (assignment_expression "pcVar24 = (code *)(PTR_LAB_000f5300 + -0x5d30)" identifier = (cast_expression "(code *)(PTR_LAB_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5300 + -0x5d30)" ( (binary_expression "PTR_LAB_000f5300 + -0x5d30" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698);" (assignment_expression "pcVar20 = (code *)(PTR_LAB_000f52fc + -0x7698)" identifier = (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) ;) (expression_statement "local_f8 = (WhereInfo *)piVar12;" (assignment_expression "local_f8 = (WhereInfo *)piVar12" identifier = (cast_expression "(WhereInfo *)piVar12" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            } while (bVar6);" do (compound_statement "{\n              if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }\n              iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);\n              local_f8 = (WhereInfo *)((int)local_f8 + 4);\n              bVar6 = (int)local_f0 < (int)unaff_s4->nCol;\n              local_f0 = (WhereInfo *)((int)local_f0 + 1);\n              local_d4 = psVar43;\n            }" { (if_statement "if (*(int *)local_f8 < 0) {\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }\n              else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }" if (parenthesized_expression "(*(int *)local_f8 < 0)" ( (binary_expression "*(int *)local_f8 < 0" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n                pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }\n              }" { (expression_statement "pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0);" (assignment_expression "pEVar21 = (Expr *)(*pcVar24)(pParse,0x4b,0,0)" identifier = (cast_expression "(Expr *)(*pcVar24)(pParse,0x4b,0,0)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar24)(pParse,0x4b,0,0)" (parenthesized_expression "(*pcVar24)" ( (pointer_expression "*pcVar24" * identifier) )) (argument_list "(pParse,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal ))))) ;) (if_statement "if (pEVar21 != (Expr *)0x0) {\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }" if (parenthesized_expression "(pEVar21 != (Expr *)0x0)" ( (binary_expression "pEVar21 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pEVar21->iColumn = (ynVar)local_f0;\n                }" { (expression_statement "pEVar21->iColumn = (ynVar)local_f0;" (assignment_expression "pEVar21->iColumn = (ynVar)local_f0" (field_expression "pEVar21->iColumn" identifier -> field_identifier) = (cast_expression "(ynVar)local_f0" ( (type_descriptor "ynVar" type_identifier) ) identifier)) ;) })) }) (else_clause "else {\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }" else (compound_statement "{\n                pEVar21 = pChanges->a[*(int *)local_f8].pExpr;\n                if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }\n              }" { (expression_statement "pEVar21 = pChanges->a[*(int *)local_f8].pExpr;" (assignment_expression "pEVar21 = pChanges->a[*(int *)local_f8].pExpr" identifier = (field_expression "pChanges->a[*(int *)local_f8].pExpr" (subscript_expression "pChanges->a[*(int *)local_f8]" (field_expression "pChanges->a" identifier -> field_identifier) [ (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ]) . field_identifier)) ;) (if_statement "if (pEVar21 != (Expr *)0x0) {\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }" if (parenthesized_expression "(pEVar21 != (Expr *)0x0)" ( (binary_expression "pEVar21 != (Expr *)0x0" identifier != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);\n                }" { (expression_statement "pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0);" (assignment_expression "pEVar21 = (Expr *)(*pcVar20)(psVar35,pEVar21,0,0)" identifier = (cast_expression "(Expr *)(*pcVar20)(psVar35,pEVar21,0,0)" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar20)(psVar35,pEVar21,0,0)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(psVar35,pEVar21,0,0)" ( identifier , identifier , number_literal , number_literal ))))) ;) })) }))) (expression_statement "iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21);" (assignment_expression "iVar15 = (*(code *)local_e0)(pParse->db,iVar15,pEVar21)" identifier = (call_expression "(*(code *)local_e0)(pParse->db,iVar15,pEVar21)" (parenthesized_expression "(*(code *)local_e0)" ( (pointer_expression "*(code *)local_e0" * (cast_expression "(code *)local_e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pParse->db,iVar15,pEVar21)" ( (field_expression "pParse->db" identifier -> field_identifier) , identifier , identifier )))) ;) (expression_statement "local_f8 = (WhereInfo *)((int)local_f8 + 4);" (assignment_expression "local_f8 = (WhereInfo *)((int)local_f8 + 4)" identifier = (cast_expression "(WhereInfo *)((int)local_f8 + 4)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f8 + 4)" ( (binary_expression "(int)local_f8 + 4" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar6 = (int)local_f0 < (int)unaff_s4->nCol;" (assignment_expression "bVar6 = (int)local_f0 < (int)unaff_s4->nCol" identifier = (binary_expression "(int)local_f0 < (int)unaff_s4->nCol" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)unaff_s4->nCol" ( (type_descriptor "int" primitive_type) ) (field_expression "unaff_s4->nCol" identifier -> field_identifier)))) ;) (expression_statement "local_f0 = (WhereInfo *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (WhereInfo *)((int)local_f0 + 1)" identifier = (cast_expression "(WhereInfo *)((int)local_f0 + 1)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_d4 = psVar43;" (assignment_expression "local_d4 = psVar43" identifier = identifier) ;) }) while (parenthesized_expression "(bVar6)" ( identifier )) ;) })) (expression_statement "in_stack_fffffed4 = (Table *)pWhere;" (assignment_expression "in_stack_fffffed4 = (Table *)pWhere" identifier = (cast_expression "(Table *)pWhere" ( (type_descriptor "Table *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(pParse,local_100,0,iVar15,pTabList)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(pParse,local_100,0,iVar15,pTabList)" ( identifier , identifier , number_literal , identifier , identifier ))) ;) (if_statement "if (iVar15 == 0) {\n            unaff_s3 = (WhereInfo *)0x0;\n          }\n          else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }" if (parenthesized_expression "(iVar15 == 0)" ( (binary_expression "iVar15 == 0" identifier == number_literal) )) (compound_statement "{\n            unaff_s3 = (WhereInfo *)0x0;\n          }" { (expression_statement "unaff_s3 = (WhereInfo *)0x0;" (assignment_expression "unaff_s3 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }" else (compound_statement "{\n            unaff_s3 = (WhereInfo *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);\n          }" { (expression_statement "unaff_s3 = (WhereInfo *)0x0;" (assignment_expression "unaff_s3 = (WhereInfo *)0x0" identifier = (cast_expression "(WhereInfo *)0x0" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(psVar35,iVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(psVar35,iVar15)" ( identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b80d0:\n          if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" statement_identifier : (if_statement "if (pTabList->nSrc == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" if (parenthesized_expression "(pTabList->nSrc == 1)" ( (binary_expression "pTabList->nSrc == 1" (field_expression "pTabList->nSrc" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) }))) (expression_statement "local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0);" (assignment_expression "local_f0 = (WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0)" identifier = (cast_expression "(WhereInfo *)(*pcVar16)(pWVar46,0x25,local_100,0,0)" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar16)(pWVar46,0x25,local_100,0,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x25,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))))) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar18) {\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);\n          }" { (do_statement "do {\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            } while (iVar18 != iVar50);" do (compound_statement "{\n              iVar50 = iVar15 + 1;\n              (*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;\n              iVar15 = iVar50;\n            }" { (expression_statement "iVar50 = iVar15 + 1;" (assignment_expression "iVar50 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)\n              ;" (call_expression "(*pcVar16)(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x59,local_100,iVar15,(int)local_e8->addrOpenEphm + iVar15 + -0x14)" ( identifier , number_literal , identifier , identifier , (binary_expression "(int)local_e8->addrOpenEphm + iVar15 + -0x14" (binary_expression "(int)local_e8->addrOpenEphm + iVar15" (cast_expression "(int)local_e8->addrOpenEphm" ( (type_descriptor "int" primitive_type) ) (field_expression "local_e8->addrOpenEphm" identifier -> field_identifier)) + identifier) + number_literal) ))) ;) (expression_statement "iVar15 = iVar50;" (assignment_expression "iVar15 = iVar50" identifier = identifier) ;) }) while (parenthesized_expression "(iVar18 != iVar50)" ( (binary_expression "iVar18 != iVar50" identifier != identifier) )) ;) })) }))) (expression_statement "pWVar47 = local_f0;" (assignment_expression "pWVar47 = local_f0" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(pParse,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6b18)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6b18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6b18)" ( (binary_expression "PTR_LAB_000f52ec + 0x6b18" identifier + number_literal) )))) )) (argument_list "(pParse,unaff_s4)" ( identifier , identifier ))) ;) (expression_statement "uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8);" (assignment_expression "uVar27 = (*pcVar16)(pWVar46,10,0,iVar18,local_e8)" identifier = (call_expression "(*pcVar16)(pWVar46,10,0,iVar18,local_e8)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,10,0,iVar18,local_e8)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4);" (call_expression "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))(pWVar46,uVar27,local_e4,0xfffffff4)" (parenthesized_expression "(*(code *)(PTR_DAT_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_DAT_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_DAT_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52e8 + -0x37ac)" ( (binary_expression "PTR_DAT_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(pWVar46,uVar27,local_e4,0xfffffff4)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (onError == 0xb) {\n          onError = 2;\n        }" if (parenthesized_expression "(onError == 0xb)" ( (binary_expression "onError == 0xb" identifier == number_literal) )) (compound_statement "{\n          onError = 2;\n        }" { (expression_statement "onError = 2;" (assignment_expression "onError = 2" identifier = number_literal) ;) })) (expression_statement "iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator;" (assignment_expression "iVar15 = *(int *)&(pWVar46->sWC).aStatic[0].eOperator" identifier = (pointer_expression "*(int *)&(pWVar46->sWC).aStatic[0].eOperator" * (cast_expression "(int *)&(pWVar46->sWC).aStatic[0].eOperator" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].eOperator" & (field_expression "(pWVar46->sWC).aStatic[0].eOperator" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) ;) (if_statement "if (0 < iVar15) {\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }" if (parenthesized_expression "(0 < iVar15)" ( (binary_expression "0 < iVar15" number_literal < identifier) )) (compound_statement "{\n          *(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;\n        }" { (expression_statement "*(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError;" (assignment_expression "*(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12) =\n               (short)onError" (pointer_expression "*(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" * (cast_expression "(short *)(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12)" ( (binary_expression "iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb + -0x12" (binary_expression "iVar15 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb" (binary_expression "iVar15 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)&(pWVar46->sWC).aStatic[0].truthProb" * (cast_expression "(int *)&(pWVar46->sWC).aStatic[0].truthProb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].truthProb" & (field_expression "(pWVar46->sWC).aStatic[0].truthProb" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) + number_literal) )))) = (cast_expression "(short)onError" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (expression_statement "pPVar26 = pParse->pToplevel;" (assignment_expression "pPVar26 = pParse->pToplevel" identifier = (field_expression "pParse->pToplevel" identifier -> field_identifier)) ;) (if_statement "if (pParse->pToplevel == (Parse *)0x0) {\n          pPVar26 = pParse;\n        }" if (parenthesized_expression "(pParse->pToplevel == (Parse *)0x0)" ( (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          pPVar26 = pParse;\n        }" { (expression_statement "pPVar26 = pParse;" (assignment_expression "pPVar26 = pParse" identifier = identifier) ;) })) (expression_statement "pPVar26->mayAbort = '\x01';" (assignment_expression "pPVar26->mayAbort = '\x01'" (field_expression "pPVar26->mayAbort" identifier -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (if_statement "if (local_b0 == (sqlite3 *)0x0) {\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }" if (parenthesized_expression "(local_b0 == (sqlite3 *)0x0)" ( (binary_expression "local_b0 == (sqlite3 *)0x0" identifier == (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);\n          pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;\n          if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }\n          if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          pParse->pVdbe = pVVar22;\n          (*pcVar16)(pWVar46,0x74,local_100,0,0);\n          unaff_s3 = pWVar47;\n          pTVar48 = unaff_s4;\n        }" { (expression_statement "(*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0);" (call_expression "(*pcVar16)(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,5,local_100,(undefined1 *)((int)&local_f0->pParse + 1),0)" ( identifier , number_literal , identifier , (cast_expression "(undefined1 *)((int)&local_f0->pParse + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&local_f0->pParse + 1)" ( (binary_expression "(int)&local_f0->pParse + 1" (cast_expression "(int)&local_f0->pParse" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_f0->pParse" & (field_expression "local_f0->pParse" identifier -> field_identifier))) + number_literal) ))) , number_literal ))) ;) (expression_statement "pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator;" (assignment_expression "pVVar22 = *(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator" identifier = (pointer_expression "*(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator" * (cast_expression "(Vdbe **)&(pWVar46->sWC).aStatic[0].eOperator" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].eOperator" & (field_expression "(pWVar46->sWC).aStatic[0].eOperator" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) ;) (if_statement "if ((int)local_f0 < 0) {\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }" if (parenthesized_expression "((int)local_f0 < 0)" ( (binary_expression "(int)local_f0 < 0" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;\n          }" { (expression_statement "local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf;" (assignment_expression "local_f0 = (WhereInfo *)&pVVar22[-1].field_0xdf" identifier = (cast_expression "(WhereInfo *)&pVVar22[-1].field_0xdf" ( (type_descriptor "WhereInfo *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pVVar22[-1].field_0xdf" & (field_expression "pVVar22[-1].field_0xdf" (subscript_expression "pVVar22[-1]" identifier [ number_literal ]) . field_identifier)))) ;) })) (if_statement "if (*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0') {\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }\n          else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }" if (parenthesized_expression "(*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0')" ( (binary_expression "*(char *)((int)&pWVar46->pParse->writeMask + 1) == '\0'" (pointer_expression "*(char *)((int)&pWVar46->pParse->writeMask + 1)" * (cast_expression "(char *)((int)&pWVar46->pParse->writeMask + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pWVar46->pParse->writeMask + 1)" ( (binary_expression "(int)&pWVar46->pParse->writeMask + 1" (cast_expression "(int)&pWVar46->pParse->writeMask" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pWVar46->pParse->writeMask" & (field_expression "pWVar46->pParse->writeMask" (field_expression "pWVar46->pParse" identifier -> field_identifier) -> field_identifier))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);\n          }" { (expression_statement "pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb);" (assignment_expression "pParse = (Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb)" identifier = (cast_expression "(Parse *)((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb)" ( (binary_expression "(int)local_f0 * 0x14 + *(int *)&(pWVar46->sWC).aStatic[0].truthProb" (binary_expression "(int)local_f0 * 0x14" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)&(pWVar46->sWC).aStatic[0].truthProb" * (cast_expression "(int *)&(pWVar46->sWC).aStatic[0].truthProb" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWVar46->sWC).aStatic[0].truthProb" & (field_expression "(pWVar46->sWC).aStatic[0].truthProb" (subscript_expression "(pWVar46->sWC).aStatic[0]" (field_expression "(pWVar46->sWC).aStatic" (parenthesized_expression "(pWVar46->sWC)" ( (field_expression "pWVar46->sWC" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) . field_identifier))))) )))) ;) }) (else_clause "else {\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }" else (compound_statement "{\n            pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);\n          }" { (expression_statement "pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860);" (assignment_expression "pParse = (Parse *)(PTR_DAT_000f52bc + 0x5860)" identifier = (cast_expression "(Parse *)(PTR_DAT_000f52bc + 0x5860)" ( (type_descriptor "Parse *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52bc + 0x5860)" ( (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal) )))) ;) }))) (expression_statement "pParse->pVdbe = pVVar22;" (assignment_expression "pParse->pVdbe = pVVar22" (field_expression "pParse->pVdbe" identifier -> field_identifier) = identifier) ;) (expression_statement "(*pcVar16)(pWVar46,0x74,local_100,0,0);" (call_expression "(*pcVar16)(pWVar46,0x74,local_100,0,0)" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(pWVar46,0x74,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "unaff_s3 = pWVar47;" (assignment_expression "unaff_s3 = pWVar47" identifier = identifier) ;) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) }) (else_clause "else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }" else (compound_statement "{\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          pTVar48 = unaff_s4;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "pTVar48 = unaff_s4;" (assignment_expression "pTVar48 = unaff_s4" identifier = identifier) ;) }))) }))) }))) (labeled_statement "LAB_000b7aa8:\n    pPVar26 = sContext.pParse;" statement_identifier : (expression_statement "pPVar26 = sContext.pParse;" (assignment_expression "pPVar26 = sContext.pParse" identifier = (field_expression "sContext.pParse" identifier . field_identifier)) ;)) (if_statement "if (sContext.pParse != (Parse *)0x0) {\n      sContext.pParse = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\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 = (Parse *)0x0;\n      pPVar26->zAuthContext = sContext.zAuthContext;\n    }" { (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 "pPVar26->zAuthContext = sContext.zAuthContext;" (assignment_expression "pPVar26->zAuthContext = sContext.zAuthContext" (field_expression "pPVar26->zAuthContext" identifier -> field_identifier) = (field_expression "sContext.zAuthContext" identifier . field_identifier)) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))(psVar43,piVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x7728)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) )) (argument_list "(psVar43,piVar12)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = pTVar48;" (assignment_expression "unaff_s4 = pTVar48" identifier = identifier) ;) (expression_statement "unaff_s5 = pParse;" (assignment_expression "unaff_s5 = pParse" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit "void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)\n\n{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}\n\n" (function_definition "void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)\n\n{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" primitive_type (function_declarator "FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" identifier (parameter_list "(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "uint param_5" type_identifier identifier) , (parameter_declaration "uint param_6" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "short sVar3;" (sized_type_specifier "short" short) identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "uint *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "code *pcVar16;" type_identifier (pointer_declarator "*pcVar16" * identifier) ;) (declaration "uint *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "byte *pbVar24;" type_identifier (pointer_declarator "*pbVar24" * identifier) ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "byte *pbVar27;" type_identifier (pointer_declarator "*pbVar27" * identifier) ;) (declaration "short *psVar28;" (sized_type_specifier "short" short) (pointer_declarator "*psVar28" * identifier) ;) (declaration "byte *pbVar29;" type_identifier (pointer_declarator "*pbVar29" * identifier) ;) (declaration "undefined4 *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "int iVar31;" primitive_type identifier ;) (declaration "code *pcVar32;" type_identifier (pointer_declarator "*pcVar32" * identifier) ;) (declaration "uint uVar33;" type_identifier identifier ;) (declaration "code *pcVar34;" type_identifier (pointer_declarator "*pcVar34" * identifier) ;) (declaration "code *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "uint *unaff_s4;" type_identifier (pointer_declarator "*unaff_s4" * identifier) ;) (declaration "uint *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "int iVar35;" primitive_type identifier ;) (declaration "code *pcVar36;" type_identifier (pointer_declarator "*pcVar36" * identifier) ;) (declaration "uint local_100;" type_identifier identifier ;) (declaration "code *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "code *local_f4;" type_identifier (pointer_declarator "*local_f4" * identifier) ;) (declaration "code *local_f0;" type_identifier (pointer_declarator "*local_f0" * identifier) ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "code *local_e8;" type_identifier (pointer_declarator "*local_e8" * identifier) ;) (declaration "uint *local_e4;" type_identifier (pointer_declarator "*local_e4" * identifier) ;) (declaration "code *local_e0;" type_identifier (pointer_declarator "*local_e0" * identifier) ;) (declaration "code *local_dc;" type_identifier (pointer_declarator "*local_dc" * identifier) ;) (declaration "code *local_d8;" type_identifier (pointer_declarator "*local_d8" * identifier) ;) (declaration "code *local_d4;" type_identifier (pointer_declarator "*local_d4" * identifier) ;) (declaration "int local_d0;" primitive_type identifier ;) (declaration "code *local_cc;" type_identifier (pointer_declarator "*local_cc" * identifier) ;) (declaration "code *local_c8;" type_identifier (pointer_declarator "*local_c8" * identifier) ;) (declaration "code *local_c4;" type_identifier (pointer_declarator "*local_c4" * identifier) ;) (declaration "code *local_b4;" type_identifier (pointer_declarator "*local_b4" * identifier) ;) (declaration "code *local_b0;" type_identifier (pointer_declarator "*local_b0" * identifier) ;) (declaration "code *local_ac;" type_identifier (pointer_declarator "*local_ac" * identifier) ;) (declaration "uint local_a8;" type_identifier identifier ;) (declaration "int local_a4;" primitive_type identifier ;) (declaration "int local_a0;" primitive_type identifier ;) (declaration "code *local_9c;" type_identifier (pointer_declarator "*local_9c" * identifier) ;) (declaration "code *local_98;" type_identifier (pointer_declarator "*local_98" * identifier) ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "code *local_90;" type_identifier (pointer_declarator "*local_90" * identifier) ;) (declaration "code *local_8c;" type_identifier (pointer_declarator "*local_8c" * identifier) ;) (declaration "uint local_88;" type_identifier identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "uint local_80;" type_identifier identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "uint *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "uint local_5c;" type_identifier identifier ;) (declaration "uint *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint *local_54;" type_identifier (pointer_declarator "*local_54" * identifier) ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "code *local_34;" type_identifier (pointer_declarator "*local_34" * identifier) ;) (declaration "code *local_30;" type_identifier (pointer_declarator "*local_30" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar8 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" identifier = identifier) ;) (expression_statement "pcVar34 = (code *)param_1[9];" (assignment_expression "pcVar34 = (code *)param_1[9]" identifier = (cast_expression "(code *)param_1[9]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[9]" identifier [ number_literal ]))) ;) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" identifier = number_literal) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar32 = (code *)*param_1;" (assignment_expression "pcVar32 = (code *)*param_1" identifier = (cast_expression "(code *)*param_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" if (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0))" ( (binary_expression "(pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" ( (comma_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0" (assignment_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51]" identifier = (cast_expression "(code *)(uint)(byte)pcVar32[0x51]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)pcVar32[0x51]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pcVar32[0x51]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar32[0x51]" identifier [ number_literal ]))))) , (binary_expression "unaff_s3 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" { (expression_statement "unaff_s4 = (uint *)FUN_000b6ddc();" (assignment_expression "unaff_s4 = (uint *)FUN_000b6ddc()" identifier = (cast_expression "(uint *)FUN_000b6ddc()" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000b6ddc()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(unaff_s4 == (uint *)0x0)" ( (binary_expression "unaff_s4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (if_statement "if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" if (parenthesized_expression "(unaff_s4[0x12] == 0)" ( (binary_expression "unaff_s4[0x12] == 0" (subscript_expression "unaff_s4[0x12]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      local_e0 = (code *)0xffff8000;\n    }" { (expression_statement "local_e0 = (code *)0xffff8000;" (assignment_expression "local_e0 = (code *)0xffff8000" identifier = (cast_expression "(code *)0xffff8000" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" else (compound_statement "{\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" { (expression_statement "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);" (assignment_expression "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x1608)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1608)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1608)" ( (binary_expression "PTR_LAB_000f52ec + 0x1608" identifier + number_literal) )))) )) (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))))) ;) }))) (expression_statement "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);" (assignment_expression "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" identifier = (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x20b0)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x20b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x20b0)" ( (binary_expression "PTR_LAB_000f52ec + 0x20b0" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0x7f,param_3,&local_64)" ( identifier , identifier , number_literal , identifier , (pointer_expression "&local_64" & identifier) ))))) ;) (expression_statement "local_e8 = (code *)unaff_s4[3];" (assignment_expression "local_e8 = (code *)unaff_s4[3]" identifier = (cast_expression "(code *)unaff_s4[3]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[3]" identifier [ number_literal ]))) ;) (if_statement "if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }" if (parenthesized_expression "(1 < *param_2)" ( (binary_expression "1 < *param_2" number_literal < (pointer_expression "*param_2" * identifier)) )) (compound_statement "{\n      pcVar34 = (code *)*param_3;\n    }" { (expression_statement "pcVar34 = (code *)*param_3;" (assignment_expression "pcVar34 = (code *)*param_3" identifier = (cast_expression "(code *)*param_3" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) })) (expression_statement "iVar31 = FUN_000a6004(param_1,unaff_s4);" (assignment_expression "iVar31 = FUN_000a6004(param_1,unaff_s4)" identifier = (call_expression "FUN_000a6004(param_1,unaff_s4)" identifier (argument_list "(param_1,unaff_s4)" ( identifier , identifier )))) ;) (if_statement "if (iVar31 != 0) goto LAB_000b7424;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);" (assignment_expression "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x45b0)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x45b0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x45b0)" ( (binary_expression "PTR_LAB_000f530c + -0x45b0" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_64)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (local_b0 != (code *)0x0) goto LAB_000b7424;" if (parenthesized_expression "(local_b0 != (code *)0x0)" ( (binary_expression "local_b0 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7424;" goto statement_identifier ;)) (expression_statement "local_d4 = (code *)param_1[10];" (assignment_expression "local_d4 = (code *)param_1[10]" identifier = (cast_expression "(code *)param_1[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (expression_statement "local_c4 = local_d4 + 1;" (assignment_expression "local_c4 = local_d4 + 1" identifier = (binary_expression "local_d4 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = (uint)local_c4;" (assignment_expression "param_1[10] = (uint)local_c4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)local_c4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" identifier = identifier) ;) (if_statement "if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }" { (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (if_statement "if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" { (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) }) (else_clause "else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" else (compound_statement "{\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" { (if_statement "if (uVar12 == 0) goto LAB_000b82e4;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b82e4;" goto statement_identifier ;)) (expression_statement "bVar1 = *(byte *)(uVar12 + 0x37);" (assignment_expression "bVar1 = *(byte *)(uVar12 + 0x37)" identifier = (pointer_expression "*(byte *)(uVar12 + 0x37)" * (cast_expression "(byte *)(uVar12 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x37)" ( (binary_expression "uVar12 + 0x37" identifier + number_literal) ))))) ;) (expression_statement "local_ec = uVar12;" (assignment_expression "local_ec = uVar12" identifier = identifier) ;) (while_statement "while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" while (parenthesized_expression "(((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)))" ( (parenthesized_expression "((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))" ( (binary_expression "(bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" ( (binary_expression "bVar1 & 0xc0" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" ( (comma_expression "local_ec = *(uint *)(local_ec + 0x14), local_ec != 0" (assignment_expression "local_ec = *(uint *)(local_ec + 0x14)" identifier = (pointer_expression "*(uint *)(local_ec + 0x14)" * (cast_expression "(uint *)(local_ec + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x14)" ( (binary_expression "local_ec + 0x14" identifier + number_literal) ))))) , (binary_expression "local_ec != 0" identifier != number_literal)) ))) )) )) (compound_statement "{\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" { (expression_statement "bVar1 = *(byte *)(local_ec + 0x37);" (assignment_expression "bVar1 = *(byte *)(local_ec + 0x37)" identifier = (pointer_expression "*(byte *)(local_ec + 0x37)" * (cast_expression "(byte *)(local_ec + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x37)" ( (binary_expression "local_ec + 0x37" identifier + number_literal) ))))) ;) })) }))) (expression_statement "pcVar23 = local_c4;" (assignment_expression "pcVar23 = local_c4" identifier = identifier) ;) (do_statement "do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);" do (compound_statement "{\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    }" { (expression_statement "puVar17 = (uint *)(uVar12 + 0x14);" (assignment_expression "puVar17 = (uint *)(uVar12 + 0x14)" identifier = (cast_expression "(uint *)(uVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) )))) ;) (if_statement "if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }" if (parenthesized_expression "(uVar12 == local_ec)" ( (binary_expression "uVar12 == local_ec" identifier == identifier) )) (compound_statement "{\n        local_f0 = pcVar23;\n      }" { (expression_statement "local_f0 = pcVar23;" (assignment_expression "local_f0 = pcVar23" identifier = identifier) ;) })) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "local_8c = pcVar23 + ~(uint)local_d4;" (assignment_expression "local_8c = pcVar23 + ~(uint)local_d4" identifier = (binary_expression "pcVar23 + ~(uint)local_d4" identifier + (unary_expression "~(uint)local_d4" ~ (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)))) ;) (expression_statement "uVar12 = *puVar17;" (assignment_expression "uVar12 = *puVar17" identifier = (pointer_expression "*puVar17" * identifier)) ;) }) while (parenthesized_expression "(*puVar17 != 0)" ( (binary_expression "*puVar17 != 0" (pointer_expression "*puVar17" * identifier) != number_literal) )) ;) (expression_statement "param_1[10] = (uint)pcVar23;" (assignment_expression "param_1[10] = (uint)pcVar23" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_000b7504;" goto statement_identifier ;) })) (do_statement "do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  }" { (while_statement "while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" { (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x35c8)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x35c8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x35c8)" ( (binary_expression "PTR_LAB_000f530c + 0x35c8" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_2)" ( identifier , identifier ))) ;) (if_statement "if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" if (parenthesized_expression "(param_3 != (uint *)0x0)" ( (binary_expression "param_3 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_3)" ( identifier , identifier ))) ;) })) (if_statement "if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3940)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3940)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3940)" ( (binary_expression "PTR_LAB_000f530c + 0x3940" identifier + number_literal) )))) )) (argument_list "(pcVar32,param_4)" ( identifier , identifier ))) ;) })) (if_statement "if (local_2c == *(int *)puVar8) {\n        return;\n      }" if (parenthesized_expression "(local_2c == *(int *)puVar8)" ( (binary_expression "local_2c == *(int *)puVar8" identifier == (pointer_expression "*(int *)puVar8" * (cast_expression "(int *)puVar8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_000b82e4:\n      local_ec = 0;" statement_identifier : (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;)) (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" identifier = identifier) ;) (labeled_statement "LAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" statement_identifier : (if_statement "if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" { (expression_statement "local_f0 = *(code **)(local_100 + 0x1c);" (assignment_expression "local_f0 = *(code **)(local_100 + 0x1c)" identifier = (pointer_expression "*(code **)(local_100 + 0x1c)" * (cast_expression "(code **)(local_100 + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_100 + 0x1c)" ( (binary_expression "local_100 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "local_c4 = *(code **)(local_100 + 0x20);" (assignment_expression "local_c4 = *(code **)(local_100 + 0x20)" identifier = (pointer_expression "*(code **)(local_100 + 0x20)" * (cast_expression "(code **)(local_100 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_100 + 0x20)" ( (binary_expression "local_100 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "param_1[10] = (uint)local_d4;" (assignment_expression "param_1[10] = (uint)local_d4" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) }))) (expression_statement "puVar19 = PTR_LAB_000f52ec;" (assignment_expression "puVar19 = PTR_LAB_000f52ec" identifier = identifier) ;) (expression_statement "param_2[0xc] = (int)local_f0;" (assignment_expression "param_2[0xc] = (int)local_f0" (subscript_expression "param_2[0xc]" identifier [ number_literal ]) = (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);" (assignment_expression "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" identifier = (cast_expression "(int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(puVar19 + 0x6c00))(pcVar32)" (parenthesized_expression "(*(code *)(puVar19 + 0x6c00))" ( (pointer_expression "*(code *)(puVar19 + 0x6c00)" * (cast_expression "(code *)(puVar19 + 0x6c00)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x6c00)" ( (binary_expression "puVar19 + 0x6c00" identifier + number_literal) )))) )) (argument_list "(pcVar32)" ( identifier ))))) ;) (if_statement "if (piVar9 != (int *)0x0) break;" if (parenthesized_expression "(piVar9 != (int *)0x0)" ( (binary_expression "piVar9 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b7424:\n      puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) (if_statement "if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" if (parenthesized_expression "(local_58 != (uint *)0x0)" ( (binary_expression "local_58 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" { (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" identifier [ number_literal ]) = identifier) ;) })) })) (expression_statement "pcVar23 = local_8c + 1;" (assignment_expression "pcVar23 = local_8c + 1" identifier = (binary_expression "local_8c + 1" identifier + number_literal)) ;) (expression_statement "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));" (assignment_expression "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" identifier = (cast_expression "(uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "piVar9 + *(short *)((int)unaff_s4 + 0x2a)" identifier + (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )))) ;) (expression_statement "puVar10 = puVar17 + (int)pcVar23;" (assignment_expression "puVar10 = puVar17 + (int)pcVar23" identifier = (binary_expression "puVar17 + (int)pcVar23" identifier + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,1,pcVar23)" ( identifier , number_literal , identifier ))) ;) (expression_statement "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;" (assignment_expression "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0" (pointer_expression "*(code *)((int)puVar10 + (int)pcVar23)" * (cast_expression "(code *)((int)puVar10 + (int)pcVar23)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + (int)pcVar23)" ( (binary_expression "(int)puVar10 + (int)pcVar23" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)pcVar23" ( (type_descriptor "int" primitive_type) ) identifier)) )))) = (cast_expression "(code)0x0" ( (type_descriptor "code" type_identifier) ) number_literal)) ;) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" identifier = (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" if (parenthesized_expression "(0 < sVar3)" ( (binary_expression "0 < sVar3" number_literal < identifier) )) (compound_statement "{\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" { (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (do_statement "do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);" do (compound_statement "{\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      }" { (expression_statement "*piVar11 = -1;" (assignment_expression "*piVar11 = -1" (pointer_expression "*piVar11" * identifier) = number_literal) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar9 + sVar3 != piVar11)" ( (binary_expression "piVar9 + sVar3 != piVar11" (binary_expression "piVar9 + sVar3" identifier + identifier) != identifier) )) ;) })) (expression_statement "local_f8 = (code *)param_1[2];" (assignment_expression "local_f8 = (code *)param_1[2]" identifier = (cast_expression "(code *)param_1[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_4c = local_100;" (assignment_expression "local_4c = local_100" identifier = identifier) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0x200;" (assignment_expression "local_3c = 0x200" identifier = number_literal) ;) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" identifier = identifier) ;) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" identifier = identifier) ;) (if_statement "if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" if (parenthesized_expression "(local_f8 == (code *)0x0)" ( (binary_expression "local_f8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }" { (expression_statement "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);" (assignment_expression "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x42ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x42ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x42ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x42ac" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" if (parenthesized_expression "(local_f8 != (code *)0x0)" ( (binary_expression "local_f8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" { (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto LAB_000b7624;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" else (compound_statement "{\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" { (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (labeled_statement "LAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;" statement_identifier : (expression_statement "puVar7 = PTR_LAB_000f530c;" (assignment_expression "puVar7 = PTR_LAB_000f530c" identifier = identifier) ;)) (expression_statement "puVar6 = PTR_DAT_000f52d4;" (assignment_expression "puVar6 = PTR_DAT_000f52d4" identifier = identifier) ;) (expression_statement "puVar19 = PTR_LAB_000f52cc;" (assignment_expression "puVar19 = PTR_LAB_000f52cc" identifier = identifier) ;) (expression_statement "local_d8 = unaff_s3;" (assignment_expression "local_d8 = unaff_s3" identifier = identifier) ;) (if_statement "if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" if (parenthesized_expression "((int)uVar12 < 1)" ( (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }" { (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" else (compound_statement "{\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" { (expression_statement "puVar20 = param_3 + 1;" (assignment_expression "puVar20 = param_3 + 1" identifier = (binary_expression "param_3 + 1" identifier + number_literal)) ;) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" identifier = number_literal) ;) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" identifier = (cast_expression "(code *)0xffffffff" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x514)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x514)" ( (binary_expression "PTR_LAB_000f52ec + 0x514" identifier + number_literal) )))) ;) (expression_statement "pcVar36 = (code *)0x0;" (assignment_expression "pcVar36 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);" do (compound_statement "{\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        }" { (expression_statement "unaff_s3 = pcVar36;" (assignment_expression "unaff_s3 = pcVar36" identifier = identifier) ;) (if_statement "if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;" if (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))" ( (binary_expression "(pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" ( (comma_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0" (assignment_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" identifier = (call_expression "(*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" (parenthesized_expression "(*(code *)(puVar7 + -0x562c))" ( (pointer_expression "*(code *)(puVar7 + -0x562c)" * (cast_expression "(code *)(puVar7 + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar7 + -0x562c)" ( (binary_expression "puVar7 + -0x562c" identifier + number_literal) )))) )) (argument_list "(&local_54,*puVar20)" ( (pointer_expression "&local_54" & identifier) , (pointer_expression "*puVar20" * identifier) )))) , (binary_expression "iVar31 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pbVar29 = (byte *)puVar20[1];" (assignment_expression "pbVar29 = (byte *)puVar20[1]" identifier = (cast_expression "(byte *)puVar20[1]" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar20[1]" identifier [ number_literal ]))) ;) (if_statement "if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" if (parenthesized_expression "(0 < iVar31)" ( (binary_expression "0 < iVar31" number_literal < identifier) )) (compound_statement "{\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" { (expression_statement "puVar30 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar30 = (undefined4 *)unaff_s4[1]" identifier = (cast_expression "(undefined4 *)unaff_s4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (do_statement "do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);" do (compound_statement "{\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            }" { (expression_statement "pbVar27 = (byte *)*puVar30;" (assignment_expression "pbVar27 = (byte *)*puVar30" identifier = (cast_expression "(byte *)*puVar30" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar30" * identifier))) ;) (expression_statement "uVar22 = (uint)*pbVar29;" (assignment_expression "uVar22 = (uint)*pbVar29" identifier = (binary_expression "(uint)*pbVar29" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "uVar12 = (uint)*pbVar27;" (assignment_expression "uVar12 = (uint)*pbVar27" identifier = (binary_expression "(uint)*pbVar27" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar24 = pbVar27;" (assignment_expression "pbVar24 = pbVar27" identifier = identifier) ;) (expression_statement "pbVar26 = pbVar29;" (assignment_expression "pbVar26 = pbVar29" identifier = identifier) ;) (if_statement "if (uVar12 == uVar22) goto LAB_000b76e8;" if (parenthesized_expression "(uVar12 == uVar22)" ( (binary_expression "uVar12 == uVar22" identifier == identifier) )) (goto_statement "goto LAB_000b76e8;" goto statement_identifier ;)) (while_statement "while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" while (parenthesized_expression "(puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac])" ( (binary_expression "puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]" (subscript_expression "puVar6[uVar12 + 0x25ac]" identifier [ (binary_expression "uVar12 + 0x25ac" identifier + number_literal) ]) == (subscript_expression "puVar6[uVar22 + 0x25ac]" identifier [ (binary_expression "uVar22 + 0x25ac" identifier + number_literal) ])) )) (compound_statement "{\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" { (while_statement "while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" { (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" identifier = (binary_expression "pbVar24 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)pbVar26[1];" (assignment_expression "uVar22 = (uint)pbVar26[1]" identifier = (cast_expression "(uint)pbVar26[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar26[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = (uint)*pbVar24;" (assignment_expression "uVar12 = (uint)*pbVar24" identifier = (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (uVar12 != uVar22) break;" if (parenthesized_expression "(uVar12 != uVar22)" ( (binary_expression "uVar12 != uVar22" identifier != identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" statement_identifier : (if_statement "if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" { (if_statement "if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" if (parenthesized_expression "(*(short *)(unaff_s4 + 10) == iVar35)" ( (binary_expression "*(short *)(unaff_s4 + 10) == iVar35" (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }" { (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" identifier = (cast_expression "(code *)*puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) }) (else_clause "else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" else (compound_statement "{\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" { (if_statement "if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" if (parenthesized_expression "((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0))" ( (binary_expression "(local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)" (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) && (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 1) != 0)" ( (binary_expression "(*(ushort *)(puVar30 + 4) & 1) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 1)" ( (binary_expression "*(ushort *)(puVar30 + 4) & 1" (pointer_expression "*(ushort *)(puVar30 + 4)" * (cast_expression "(ushort *)(puVar30 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 4)" ( (binary_expression "puVar30 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" { (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7e5c;" if (parenthesized_expression "(iVar31 <= iVar35)" ( (binary_expression "iVar31 <= iVar35" identifier <= identifier) )) (goto_statement "goto LAB_000b7e5c;" goto statement_identifier ;)) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_84 = 1;" (assignment_expression "local_84 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) })) (if_statement "if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" if (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 0x60) != 0)" ( (binary_expression "(*(ushort *)(puVar30 + 4) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 0x60)" ( (binary_expression "*(ushort *)(puVar30 + 4) & 0x60" (pointer_expression "*(ushort *)(puVar30 + 4)" * (cast_expression "(ushort *)(puVar30 + 4)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 4)" ( (binary_expression "puVar30 + 4" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" ( identifier , (binary_expression "PTR_DAT_000f52d4 + -0x6824" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) })) }))) (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7748;" if (parenthesized_expression "(iVar31 <= iVar35)" ( (binary_expression "iVar31 <= iVar35" identifier <= identifier) )) (goto_statement "goto LAB_000b7748;" goto statement_identifier ;)) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (goto_statement "goto LAB_000b7790;" goto statement_identifier ;) }))) })) })) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "puVar30 = puVar30 + 5;" (assignment_expression "puVar30 = puVar30 + 5" identifier = (binary_expression "puVar30 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 != iVar31)" ( (binary_expression "iVar35 != iVar31" identifier != identifier) )) ;) })) (labeled_statement "LAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" statement_identifier : (if_statement "if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" if (parenthesized_expression "((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0))" ( (binary_expression "(local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" (parenthesized_expression "(local_ec != 0)" ( (binary_expression "local_ec != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" ( (comma_expression "iVar31 = (*pcVar13)(pbVar29), iVar31 == 0" (assignment_expression "iVar31 = (*pcVar13)(pbVar29)" identifier = (call_expression "(*pcVar13)(pbVar29)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(pbVar29)" ( identifier )))) , (binary_expression "iVar31 == 0" identifier == number_literal)) ))) )) (compound_statement "{\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" { (labeled_statement "LAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" ( (binary_expression "PTR_LAB_000f530c + -0x61d8" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" ( identifier , (binary_expression "PTR_DAT_000f52d4 + -0x6800" identifier + number_literal) , identifier ))) ;)) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" * (cast_expression "(undefined1 *)((int)param_1 + 0x11)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x11)" ( (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;) }))) (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" identifier = (cast_expression "(code *)*puVar20" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar20" * identifier))) ;) (expression_statement "iVar35 = -1;" (assignment_expression "iVar35 = -1" identifier = number_literal) ;) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" identifier = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar27 = puVar19 + 0x7028;" (assignment_expression "pbVar27 = puVar19 + 0x7028" identifier = (binary_expression "puVar19 + 0x7028" identifier + number_literal)) ;) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" identifier = identifier) ;) (labeled_statement "LAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" statement_identifier : (expression_statement "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" (assignment_expression "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x5ce4)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x5ce4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x5ce4)" ( (binary_expression "PTR_LAB_000f530c + -0x5ce4" identifier + number_literal) )))) )) (argument_list "(param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" ( identifier , number_literal , identifier , identifier , (pointer_expression "*(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" * (cast_expression "(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" ( (binary_expression "*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10" (pointer_expression "*(int *)(pcVar32 + 0x10)" * (cast_expression "(int *)(pcVar32 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x10)" ( (binary_expression "pcVar32 + 0x10" identifier + number_literal) )))) + (binary_expression "(int)local_e0 * 0x10" (cast_expression "(int)local_e0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) )))) )))) ;)) (if_statement "if (iVar31 == 1) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar31 == 1)" ( (binary_expression "iVar31 == 1" identifier == number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (if_statement "if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }" if (parenthesized_expression "(iVar31 == 2)" ( (binary_expression "iVar31 == 2" identifier == number_literal) )) (compound_statement "{\n            piVar9[iVar35] = -1;\n          }" { (expression_statement "piVar9[iVar35] = -1;" (assignment_expression "piVar9[iVar35] = -1" (subscript_expression "piVar9[iVar35]" identifier [ identifier ]) = number_literal) ;) })) (expression_statement "puVar20 = puVar20 + 4;" (assignment_expression "puVar20 = puVar20 + 4" identifier = (binary_expression "puVar20 + 4" identifier + number_literal)) ;) (expression_statement "pcVar36 = unaff_s3 + 1;" (assignment_expression "pcVar36 = unaff_s3 + 1" identifier = (binary_expression "unaff_s3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)(unaff_s3 + 1) < (int)*param_3)" ( (binary_expression "(int)(unaff_s3 + 1) < (int)*param_3" (cast_expression "(int)(unaff_s3 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(unaff_s3 + 1)" ( (binary_expression "unaff_s3 + 1" identifier + number_literal) ))) < (cast_expression "(int)*param_3" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*param_3" * identifier))) )) ;) }))) (expression_statement "uVar12 = (uint)(local_d8 + local_84) & 0xff;" (assignment_expression "uVar12 = (uint)(local_d8 + local_84) & 0xff" identifier = (binary_expression "(uint)(local_d8 + local_84) & 0xff" (call_expression "(uint)(local_d8 + local_84)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_d8 + local_84)" ( (binary_expression "local_d8 + local_84" identifier + identifier) ))) & number_literal)) ;) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" { (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (do_statement "do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);" do (compound_statement "{\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        }" { (if_statement "if (iVar31 < 1) break;" if (parenthesized_expression "(iVar31 < 1)" ( (binary_expression "iVar31 < 1" identifier < number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" identifier = false) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (do_statement "do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);" do (compound_statement "{\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          }" { (if_statement "if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" if (parenthesized_expression "((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0))" ( (binary_expression "(*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" (parenthesized_expression "(*piVar11 < 0)" ( (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" * identifier) < number_literal) )) && (parenthesized_expression "(iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" ( (comma_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (assignment_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14" identifier = (binary_expression "unaff_s4[1] + iVar35 * 0x14" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (binary_expression "iVar35 * 0x14" identifier * number_literal))) , (binary_expression "(*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x10) & 0x60)" ( (binary_expression "*(ushort *)(iVar14 + 0x10) & 0x60" (pointer_expression "*(ushort *)(iVar14 + 0x10)" * (cast_expression "(ushort *)(iVar14 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) & number_literal) )) != number_literal)) ))) )) (compound_statement "{\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" { (expression_statement "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);" (assignment_expression "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" ( (pointer_expression "*(undefined4 *)(iVar14 + 4)" * (cast_expression "(undefined4 *)(iVar14 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 4)" ( (binary_expression "iVar14 + 4" identifier + number_literal) )))) , identifier , identifier )))) ;) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" if (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) (compound_statement "{\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" { (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" identifier = true) ;) (expression_statement "*piVar11 = 99999;" (assignment_expression "*piVar11 = 99999" (pointer_expression "*piVar11" * identifier) = number_literal) ;) })) })) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar35 < iVar31)" ( (binary_expression "iVar35 < iVar31" identifier < identifier) )) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) })) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) (expression_statement "uVar25 = *param_1;" (assignment_expression "uVar25 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1208)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x1208)" ( (binary_expression "PTR_LAB_000f52ec + 0x1208" identifier + number_literal) )))) ;) (expression_statement "param_2[0x10] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x10] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x10]" identifier [ number_literal ]) = (unary_expression "-(uint)(uVar22 != 0)" - (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) ))))) ;) (expression_statement "param_2[0x11] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x11] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x11]" identifier [ number_literal ]) = (unary_expression "-(uint)(uVar22 != 0)" - (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) ))))) ;) (expression_statement "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);" (assignment_expression "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" identifier = (call_expression "(*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(uVar25,unaff_s4,piVar9,uVar12)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (param_5 == 5) {\n        local_60 = 1;\n      }" if (parenthesized_expression "(param_5 == 5)" ( (binary_expression "param_5 == 5" identifier == number_literal) )) (compound_statement "{\n        local_60 = 1;\n      }" { (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" identifier = number_literal) ;) })) (expression_statement "uVar22 = unaff_s4[2];" (assignment_expression "uVar22 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (expression_statement "local_78 = puVar17;" (assignment_expression "local_78 = puVar17" identifier = identifier) ;) (if_statement "if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" ( (binary_expression "PTR_LAB_000f52ec + -0x71c" identifier + number_literal) )))) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = puVar17;" (assignment_expression "puVar20 = puVar17" identifier = identifier) ;) (do_statement "do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);" do (compound_statement "{\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        }" { (if_statement "if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" if (parenthesized_expression "((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))))" ( (binary_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" (parenthesized_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec))" ( (binary_expression "((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)" (parenthesized_expression "((uVar12 == 0) && (iVar31 < 2))" ( (binary_expression "(uVar12 == 0) && (iVar31 < 2)" (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar31 < 2)" ( (binary_expression "iVar31 < 2" identifier < number_literal) ))) )) && (parenthesized_expression "(uVar22 != local_ec)" ( (binary_expression "uVar22 != local_ec" identifier != identifier) ))) )) && (parenthesized_expression "((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" ( (parenthesized_expression "(*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))" ( (binary_expression "*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" (binary_expression "*(int *)(uVar22 + 0x24) == 0" (pointer_expression "*(int *)(uVar22 + 0x24)" * (cast_expression "(int *)(uVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x24)" ( (binary_expression "uVar22 + 0x24" identifier + number_literal) )))) == number_literal) || (parenthesized_expression "(iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" ( (comma_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0" (assignment_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(int *)(uVar22 + 0x24),piVar9,local_d8)" ( (pointer_expression "*(int *)(uVar22 + 0x24)" * (cast_expression "(int *)(uVar22 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x24)" ( (binary_expression "uVar22 + 0x24" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar14 == 0" identifier == number_literal)) ))) )) ))) )) (compound_statement "{\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (if_statement "if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" if (parenthesized_expression "(*(short *)(uVar22 + 0x32) != 0)" ( (binary_expression "*(short *)(uVar22 + 0x32) != 0" (pointer_expression "*(short *)(uVar22 + 0x32)" * (cast_expression "(short *)(uVar22 + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x32)" ( (binary_expression "uVar22 + 0x32" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" { (do_statement "do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));" do (compound_statement "{\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              }" { (expression_statement "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);" (assignment_expression "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" identifier = (cast_expression "(int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" * (cast_expression "(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar22 + 4) + iVar14 * 2)" ( (binary_expression "*(int *)(uVar22 + 4) + iVar14 * 2" (pointer_expression "*(int *)(uVar22 + 4)" * (cast_expression "(int *)(uVar22 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 4)" ( (binary_expression "uVar22 + 4" identifier + number_literal) )))) + (binary_expression "iVar14 * 2" identifier * number_literal)) )))))) ;) (if_statement "if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" if (parenthesized_expression "(iVar15 < 0)" ( (binary_expression "iVar15 < 0" identifier < number_literal) )) (compound_statement "{\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }" { (expression_statement "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);" (assignment_expression "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" identifier = (call_expression "(*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" ( (pointer_expression "*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" * (cast_expression "(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" ( (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4" (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10" (pointer_expression "*(int *)(uVar22 + 0x28)" * (cast_expression "(int *)(uVar22 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x28)" ( (binary_expression "uVar22 + 0x28" identifier + number_literal) )))) + (binary_expression "iVar14 * 0x10" identifier * number_literal)) + number_literal) )))) , identifier , identifier )))) ;) }) (else_clause "else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" else (compound_statement "{\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" { (expression_statement "uVar25 = (uint)~piVar9[iVar15] >> 0x1f;" (assignment_expression "uVar25 = (uint)~piVar9[iVar15] >> 0x1f" identifier = (binary_expression "(uint)~piVar9[iVar15] >> 0x1f" (cast_expression "(uint)~piVar9[iVar15]" ( (type_descriptor "uint" type_identifier) ) (unary_expression "~piVar9[iVar15]" ~ (subscript_expression "piVar9[iVar15]" identifier [ identifier ]))) >> number_literal)) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (if_statement "if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" if (parenthesized_expression "(uVar25 != 0)" ( (binary_expression "uVar25 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" { (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" * (cast_expression "(ushort *)(uVar22 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x34)" ( (binary_expression "uVar22 + 0x34" identifier + number_literal) )))) + identifier)) ;) (if_statement "if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }" if (parenthesized_expression "((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05'))" ( (binary_expression "(param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')" (parenthesized_expression "(param_5 == 0xb)" ( (binary_expression "param_5 == 0xb" identifier == number_literal) )) && (parenthesized_expression "(*(char *)(uVar22 + 0x36) == '\x05')" ( (binary_expression "*(char *)(uVar22 + 0x36) == '\x05'" (pointer_expression "*(char *)(uVar22 + 0x36)" * (cast_expression "(char *)(uVar22 + 0x36)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x36)" ( (binary_expression "uVar22 + 0x36" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    local_60 = 1;\n                  }" { (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" identifier = number_literal) ;) })) (goto_statement "goto LAB_000b79b4;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32))" ( (binary_expression "iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32)" identifier < (binary_expression "(int)(uint)*(ushort *)(uVar22 + 0x32)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(uVar22 + 0x32)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x32)" ( (binary_expression "uVar22 + 0x32" identifier + number_literal) ))))) )) ;) })) (labeled_statement "LAB_000b79c4:\n            uVar25 = 0;" statement_identifier : (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;)) (expression_statement "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1)" * (cast_expression "(undefined1 *)((int)puVar10 + iVar35 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + iVar35 + 1)" ( (binary_expression "(int)puVar10 + iVar35 + 1" (binary_expression "(int)puVar10 + iVar35" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" else (compound_statement "{\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" { (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" * (cast_expression "(ushort *)(uVar22 + 0x34)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x34)" ( (binary_expression "uVar22 + 0x34" identifier + number_literal) )))) + identifier)) ;) (labeled_statement "LAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;" statement_identifier : (if_statement "if (uVar25 == 0) goto LAB_000b79c4;" if (parenthesized_expression "(uVar25 == 0)" ( (binary_expression "uVar25 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b79c4;" goto statement_identifier ;))) }))) (expression_statement "uVar22 = *(uint *)(uVar22 + 0x14);" (assignment_expression "uVar22 = *(uint *)(uVar22 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar22 + 0x14)" * (cast_expression "(uint *)(uVar22 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x14)" ( (binary_expression "uVar22 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "*puVar20 = uVar25;" (assignment_expression "*puVar20 = uVar25" (pointer_expression "*puVar20" * identifier) = identifier) ;) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" identifier = (binary_expression "puVar20 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) ;) (expression_statement "local_78 = puVar17 + iVar35;" (assignment_expression "local_78 = puVar17 + iVar35" identifier = (binary_expression "puVar17 + iVar35" identifier + identifier)) ;) })) (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" * identifier) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (if_statement "if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" { (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" ( (pointer_expression "*(code *)PTR_memset_000f5450" * (cast_expression "(code *)PTR_memset_000f5450" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar10,1,pcVar23)" ( identifier , number_literal , identifier ))) ;) })) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" { (expression_statement "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;" (assignment_expression "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (pointer_expression "*(ushort *)(local_f8 + 0x96)" * (cast_expression "(ushort *)(local_f8 + 0x96)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x96)" ( (binary_expression "local_f8 + 0x96" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff" (pointer_expression "*(ushort *)(local_f8 + 0x96)" * (cast_expression "(ushort *)(local_f8 + 0x96)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x96)" ( (binary_expression "local_f8 + 0x96" identifier + number_literal) )))) & number_literal) | number_literal)) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + -0x5698)" * (cast_expression "(code *)(PTR_LAB_000f5308 + -0x5698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + -0x5698)" ( (binary_expression "PTR_LAB_000f5308 + -0x5698" identifier + number_literal) )))) )) (argument_list "(param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" ( identifier , (binary_expression "local_e4 != (uint *)0x0 || iVar31 != 0" (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (binary_expression "iVar31 != 0" identifier != number_literal)) , identifier ))) ;) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) (if_statement "if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }" { (expression_statement "uVar25 = param_1[0xb];" (assignment_expression "uVar25 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "local_80 = *local_78;" (assignment_expression "local_80 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (expression_statement "local_e0 = (code *)(uVar25 + 1);" (assignment_expression "local_e0 = (code *)(uVar25 + 1)" identifier = (cast_expression "(code *)(uVar25 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar25 + 1)" ( (binary_expression "uVar25 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" identifier = (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "param_1[0xb] = (uint)local_e0;" (assignment_expression "param_1[0xb] = (uint)local_e0" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_e0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "local_c8 = local_e0;" (assignment_expression "local_c8 = local_e0" identifier = identifier) ;) (if_statement "if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }" { (if_statement "if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" if (parenthesized_expression "((local_e4 == (uint *)0x0) && (iVar31 == 0))" ( (binary_expression "(local_e4 == (uint *)0x0) && (iVar31 == 0)" (parenthesized_expression "(local_e4 == (uint *)0x0)" ( (binary_expression "local_e4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) ))) )) (compound_statement "{\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }" { (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" identifier = identifier) ;) (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b7c48;" if (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7c48;" goto statement_identifier ;)) }) (else_clause "else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" else (compound_statement "{\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" { (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)(local_e0 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(local_e0 + sVar3)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (call_expression "(uint)(local_e0 + sVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_e0 + sVar3)" ( (binary_expression "local_e0 + sVar3" identifier + identifier) )))) ;) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" identifier = (binary_expression "local_e0 + sVar3" identifier + identifier)) ;) }))) (labeled_statement "LAB_000b7c3c:\n          local_c8 = pcVar23 + 1;" statement_identifier : (expression_statement "local_c8 = pcVar23 + 1;" (assignment_expression "local_c8 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "param_1[0xb] = (uint)local_c8;" (assignment_expression "param_1[0xb] = (uint)local_c8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_c8" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "pcVar23 = local_c8;" (assignment_expression "pcVar23 = local_c8" identifier = identifier) ;) }) (else_clause "else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" else (compound_statement "{\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" { (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" identifier = (binary_expression "uVar25 + 2" identifier + number_literal)) ;) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" identifier = (binary_expression "local_e0 + sVar3" identifier + identifier)) ;) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;" if (parenthesized_expression "(((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0))" ( (binary_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)" (parenthesized_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0))" ( (binary_expression "(uVar12 != 0) || (local_e4 != (uint *)0x0)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) || (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_000b7c3c;" goto statement_identifier ;)) }))) (labeled_statement "LAB_000b7c48:\n        local_90 = pcVar23 + 1;" statement_identifier : (expression_statement "local_90 = pcVar23 + 1;" (assignment_expression "local_90 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "param_1[0xb] = (uint)(pcVar23 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(pcVar23 + sVar3)" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (call_expression "(uint)(pcVar23 + sVar3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar23 + sVar3)" ( (binary_expression "pcVar23 + sVar3" identifier + identifier) )))) ;) }) (else_clause "else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" else (compound_statement "{\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" { (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" identifier = number_literal) ;) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" identifier = number_literal) ;) (expression_statement "local_90 = (code *)0x0;" (assignment_expression "local_90 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c8 = (code *)0x0;" (assignment_expression "local_c8 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_e0 = (code *)0x0;" (assignment_expression "local_e0 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "unaff_s3 = local_d8;" (assignment_expression "unaff_s3 = local_d8" identifier = identifier) ;) (if_statement "if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }" { (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7cac;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7cac;" goto statement_identifier ;)) }) (else_clause "else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" else (compound_statement "{\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" { (expression_statement "local_5c = param_1[0x3d];" (assignment_expression "local_5c = param_1[0x3d]" identifier = (subscript_expression "param_1[0x3d]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x3d] = *unaff_s4;" (assignment_expression "param_1[0x3d] = *unaff_s4" (subscript_expression "param_1[0x3d]" identifier [ number_literal ]) = (pointer_expression "*unaff_s4" * identifier)) ;) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" identifier = identifier) ;) (if_statement "if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" { (expression_statement "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);" (call_expression "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" identifier (argument_list "(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" ( identifier , identifier , (subscript_expression "unaff_s4[0x12]" identifier [ number_literal ]) , identifier , identifier ))) ;) (labeled_statement "LAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" statement_identifier : (expression_statement "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" (assignment_expression "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" identifier = (call_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x562c)" * (cast_expression "(code *)(PTR_LAB_000f530c + -0x562c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + -0x562c)" ( (binary_expression "PTR_LAB_000f530c + -0x562c" identifier + number_literal) )))) )) (argument_list "(&local_54,param_4)" ( (pointer_expression "&local_54" & identifier) , identifier )))) ;)) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (iVar35 != 0) goto LAB_000b7aa8;" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" identifier = (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ])) ;) })) }))) (if_statement "if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" if (parenthesized_expression "(uVar22 == 0)" ( (binary_expression "uVar22 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }" { (expression_statement "uVar22 = *(uint *)(pcVar32 + 0x20);" (assignment_expression "uVar22 = *(uint *)(pcVar32 + 0x20)" identifier = (pointer_expression "*(uint *)(pcVar32 + 0x20)" * (cast_expression "(uint *)(pcVar32 + 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar32 + 0x20)" ( (binary_expression "pcVar32 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "local_b0 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_b0 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_b0;" (assignment_expression "param_1[0xe] = (uint)local_b0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_b0" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" if (parenthesized_expression "(((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0))" ( (binary_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)" (parenthesized_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0'))" ( (binary_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')" (parenthesized_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0))" ( (binary_expression "((uVar22 & 1) == 0) || (param_1[0x1e] != 0)" (parenthesized_expression "((uVar22 & 1) == 0)" ( (binary_expression "(uVar22 & 1) == 0" (parenthesized_expression "(uVar22 & 1)" ( (binary_expression "uVar22 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(param_1[0x1e] != 0)" ( (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(*(char *)((int)param_1 + 0x12) != '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) ))) )) (compound_statement "{\n          local_a8 = 0;\n        }" { (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" else (compound_statement "{\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" { (expression_statement "local_a8 = param_1[0xb] + 1;" (assignment_expression "local_a8 = param_1[0xb] + 1" identifier = (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "param_1[0xb] = local_a8;" (assignment_expression "param_1[0xb] = local_a8" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*pcVar23)(local_f8,0x45,0,local_a8,0);" (call_expression "(*pcVar23)(local_f8,0x45,0,local_a8,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(local_f8,0x45,0,local_a8,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) }))) (if_statement "if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" if (parenthesized_expression "((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0))" ( (binary_expression "(pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" ( (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" ( (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*local_f4)(local_f8,0x48,0,local_80,local_e0);" (call_expression "(*local_f4)(local_f8,0x48,0,local_80,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x48,0,local_80,local_e0)" ( identifier , number_literal , number_literal , identifier , identifier ))) ;) (expression_statement "local_98 = (code *)0x0;" (assignment_expression "local_98 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" if (parenthesized_expression "(local_100 != 0)" ( (binary_expression "local_100 != 0" identifier != number_literal) )) (compound_statement "{\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x5054)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x5054)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x5054)" ( (binary_expression "PTR_LAB_000f5308 + 0x5054" identifier + number_literal) )))) )) (argument_list "(param_1,param_4,local_b0,0x10)" ( identifier , identifier , identifier , number_literal ))) ;)) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" statement_identifier : (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" else (compound_statement "{\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" { (labeled_statement "LAB_000b7da8:\n              local_a4 = local_d0;" statement_identifier : (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;)) (if_statement "if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" { (labeled_statement "LAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" statement_identifier : (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;)) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" identifier = identifier) ;) (do_statement "do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);" do (compound_statement "{\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                }" { (expression_statement "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);" (assignment_expression "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35)" identifier = (cast_expression "(short *)(*(int *)(local_ec + 4) + iVar35)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(local_ec + 4) + iVar35)" ( (binary_expression "*(int *)(local_ec + 4) + iVar35" (pointer_expression "*(int *)(local_ec + 4)" * (cast_expression "(int *)(local_ec + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 4)" ( (binary_expression "local_ec + 4" identifier + number_literal) )))) + identifier) )))) ;) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" identifier = (binary_expression "iVar35 + 2" identifier + number_literal)) ;) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" ( identifier , identifier , identifier , (cast_expression "(int)*psVar28" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*psVar28" * identifier)) , identifier ))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) }) while (parenthesized_expression "(local_d0 << 1 != iVar35)" ( (binary_expression "local_d0 << 1 != iVar35" (binary_expression "local_d0 << 1" identifier << number_literal) != identifier) )) ;) })) (expression_statement "local_d0 = local_a4;" (assignment_expression "local_d0 = local_a4" identifier = identifier) ;) (if_statement "if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (labeled_statement "LAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" statement_identifier : (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6954)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6954)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6954)" ( (binary_expression "PTR_LAB_000f52ec + 0x6954" identifier + number_literal) )))) )) (argument_list "(pcVar32,local_ec)" ( identifier , identifier )))) ;)) (expression_statement "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);" (assignment_expression "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" identifier = (call_expression "(*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x5b,local_dc,local_d0,local_98)" ( identifier , number_literal , identifier , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(local_f8,uVar21,uVar18,local_d0)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x82,local_cc,local_98,local_dc,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) }) (else_clause "else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" else (if_statement "if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" if (parenthesized_expression "(local_9c == (code *)0x0)" ( (binary_expression "local_9c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                local_9c = local_dc;\n              }" { (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" else (compound_statement "{\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(*(int *)local_f8,local_f8 + 0x68,local_9c)" ( (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "local_f8 + 0x68" identifier + number_literal) , identifier ))) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) }))))) })))) (goto_statement "goto LAB_000b8330;" goto statement_identifier ;) })) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9260:\n          uVar18 = 0x1004;" statement_identifier : (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;)) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" { (if_statement "if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" if (parenthesized_expression "(local_e4 == (uint *)0x0)" ( (binary_expression "local_e4 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }" { (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;) (if_statement "if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" { (if_statement "if (uVar12 != 0) goto LAB_000b9278;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b9278;" goto statement_identifier ;)) (expression_statement "uVar18 = 0x100c;" (assignment_expression "uVar18 = 0x100c" identifier = number_literal) ;) (if_statement "if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }" if (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar18 = 0x1004;\n                }" { (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;) })) })) }) (else_clause "else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" else (compound_statement "{\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" { (labeled_statement "LAB_000b9278:\n              uVar18 = 0x1004;" statement_identifier : (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" identifier = number_literal) ;)) }))) })) (expression_statement "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);" (assignment_expression "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" identifier = (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" identifier (argument_list "(param_1,param_2,param_4,0,0,uVar18,local_c4)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_7c == 0) goto LAB_000b7aa8;" if (parenthesized_expression "(local_7c == 0)" ( (binary_expression "local_7c == 0" identifier == number_literal) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "local_34 = *(code **)(local_7c + 0x14);" (assignment_expression "local_34 = *(code **)(local_7c + 0x14)" identifier = (pointer_expression "*(code **)(local_7c + 0x14)" * (cast_expression "(code **)(local_7c + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_7c + 0x14)" ( (binary_expression "local_7c + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(code **)(local_7c + 0x18);" (assignment_expression "local_30 = *(code **)(local_7c + 0x18)" identifier = (pointer_expression "*(code **)(local_7c + 0x18)" * (cast_expression "(code **)(local_7c + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_7c + 0x18)" ( (binary_expression "local_7c + 0x18" identifier + number_literal) ))))) ;) (expression_statement "cVar2 = *(char *)(local_7c + 0x2e);" (assignment_expression "cVar2 = *(char *)(local_7c + 0x2e)" identifier = (pointer_expression "*(char *)(local_7c + 0x2e)" * (cast_expression "(char *)(local_7c + 0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + 0x2e)" ( (binary_expression "local_7c + 0x2e" identifier + number_literal) ))))) ;) (expression_statement "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;" (assignment_expression "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f" identifier = (binary_expression "*(uint *)(local_7c + 0x30) >> 0x1f" (pointer_expression "*(uint *)(local_7c + 0x30)" * (cast_expression "(uint *)(local_7c + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_7c + 0x30)" ( (binary_expression "local_7c + 0x30" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" { (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;) })) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar20 = param_1;\n          }" { (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" * (cast_expression "(undefined1 *)(puVar20 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" identifier = (subscript_expression "unaff_s4[9]" identifier [ number_literal ])) ;) (if_statement "if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" { (if_statement "if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;" if (parenthesized_expression "((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))" ( (binary_expression "(((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" (parenthesized_expression "(((int)local_30 < 0) || (local_f0 == local_30))" ( (binary_expression "((int)local_30 < 0) || (local_f0 == local_30)" (parenthesized_expression "((int)local_30 < 0)" ( (binary_expression "(int)local_30 < 0" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(local_f0 == local_30)" ( (binary_expression "local_f0 == local_30" identifier == identifier) ))) )) || (parenthesized_expression "(*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" ( (binary_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'" (pointer_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" * (cast_expression "(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_30 - (int)local_d4)" ( (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (goto_statement "goto LAB_000b7d98;" goto statement_identifier ;)) (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" if (parenthesized_expression "((uVar22 & 0x80) == 0)" ( (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b937c;" goto statement_identifier ;) })) (if_statement "if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" if (parenthesized_expression "(0 < local_d0)" ( (binary_expression "0 < local_d0" number_literal < identifier) )) (compound_statement "{\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" { (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (goto_statement "goto LAB_000b7db0;" goto statement_identifier ;) })) (goto_statement "goto LAB_000b9410;" goto statement_identifier ;) })) (if_statement "if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;" if (parenthesized_expression "((uVar22 & 0x80) != 0)" ( (binary_expression "(uVar22 & 0x80) != 0" (parenthesized_expression "(uVar22 & 0x80)" ( (binary_expression "uVar22 & 0x80" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_000b7da8;" goto statement_identifier ;)) (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" { (labeled_statement "LAB_000b937c:\n            uVar22 = param_1[0xb];" statement_identifier : (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" identifier = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;)) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" * identifier) = (binary_expression "uVar22 + 1" identifier + number_literal)) ;) (expression_statement "(*local_f4)(local_f8,0x93,local_80,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x93,local_80,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x93,local_80,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" identifier = number_literal) ;) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" identifier = identifier) ;) (labeled_statement "LAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" statement_identifier : (if_statement "if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" { (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }" { (labeled_statement "LAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" statement_identifier : (if_statement "if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < (int)local_34)" ( (binary_expression "-1 < (int)local_34" number_literal < (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" * (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_34 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_34 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_34 - (int)local_d4)" ( (binary_expression "(int)local_34 - (int)local_d4" (cast_expression "(int)local_34" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) }))) (if_statement "if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" if (parenthesized_expression "(-1 < (int)local_30)" ( (binary_expression "-1 < (int)local_30" number_literal < (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" { (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" * (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" ( (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)local_30 - (int)local_d4)" ( (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) = number_literal) ;) })) (if_statement "if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" if (parenthesized_expression "((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))))" ( (binary_expression "(cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) && (parenthesized_expression "(0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" ( (binary_expression "0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" number_literal < (cast_expression "(int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(local_8c + ((int)~(uint)local_30 >> 0x1f))" ( (binary_expression "local_8c + ((int)~(uint)local_30 >> 0x1f)" identifier + (parenthesized_expression "((int)~(uint)local_30 >> 0x1f)" ( (binary_expression "(int)~(uint)local_30 >> 0x1f" (cast_expression "(int)~(uint)local_30" ( (type_descriptor "int" primitive_type) ) (unary_expression "~(uint)local_30" ~ (cast_expression "(uint)local_30" ( (type_descriptor "uint" type_identifier) ) identifier))) >> number_literal) ))) )))) ))) )) (compound_statement "{\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" { (expression_statement "iVar35 = (*local_f4)(local_f8,0x11,0,0,0);" (assignment_expression "iVar35 = (*local_f4)(local_f8,0x11,0,0,0)" identifier = (call_expression "(*local_f4)(local_f8,0x11,0,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x11,0,0,0)" ( identifier , number_literal , number_literal , number_literal , number_literal )))) ;) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b908c;" if (parenthesized_expression "(unaff_s4[0xe] == 0)" ( (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000b908c;" goto statement_identifier ;)) (goto_statement "goto LAB_000b90c8;" goto statement_identifier ;) })) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b9084;" if (parenthesized_expression "(unaff_s4[0xe] == 0)" ( (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_000b9084;" goto statement_identifier ;)) (labeled_statement "LAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" statement_identifier : (if_statement "if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" if (parenthesized_expression "((local_34 != local_f0) && (local_30 != local_f0))" ( (binary_expression "(local_34 != local_f0) && (local_30 != local_f0)" (parenthesized_expression "(local_34 != local_f0)" ( (binary_expression "local_34 != local_f0" identifier != identifier) )) && (parenthesized_expression "(local_30 != local_f0)" ( (binary_expression "local_30 != local_f0" identifier != identifier) ))) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b902c:\n              local_d4 = local_b0;" statement_identifier : (expression_statement "local_d4 = local_b0;" (assignment_expression "local_d4 = local_b0" identifier = identifier) ;)) (if_statement "if (cVar2 != '\x01') goto LAB_000b9038;" if (parenthesized_expression "(cVar2 != '\x01')" ( (binary_expression "cVar2 != '\x01'" identifier != (char_literal "'\x01'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9038;" goto statement_identifier ;)) }) (else_clause "else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" else (compound_statement "{\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" { (labeled_statement "LAB_000b9038:\n              uVar22 = param_1[0xe];" statement_identifier : (expression_statement "uVar22 = param_1[0xe];" (assignment_expression "uVar22 = param_1[0xe]" identifier = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;)) (expression_statement "param_1[0xe] = uVar22 - 1;" (assignment_expression "param_1[0xe] = uVar22 - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (binary_expression "uVar22 - 1" identifier - number_literal)) ;) (expression_statement "local_d4 = (code *)(uVar22 - 1);" (assignment_expression "local_d4 = (code *)(uVar22 - 1)" identifier = (cast_expression "(code *)(uVar22 - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 - 1)" ( (binary_expression "uVar22 - 1" identifier - number_literal) )))) ;) }))) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" identifier = identifier) ;) (if_statement "if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              pcVar23 = local_e0;\n            }" { (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" identifier = identifier) ;) })) (expression_statement "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x32,pcVar23,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "pcVar23 = local_d4;" (assignment_expression "pcVar23 = local_d4" identifier = identifier) ;) (goto_statement "goto LAB_000b8340;" goto statement_identifier ;) }))) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) (labeled_statement "LAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" statement_identifier : (if_statement "if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }" { (if_statement "if (cVar2 != '\0') goto LAB_000b9784;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b9784;" goto statement_identifier ;)) (if_statement "if (unaff_s4[0xe] != 0) goto LAB_000b911c;" if (parenthesized_expression "(unaff_s4[0xe] != 0)" ( (binary_expression "unaff_s4[0xe] != 0" (subscript_expression "unaff_s4[0xe]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000b911c;" goto statement_identifier ;)) (labeled_statement "LAB_000b9084:\n            iVar35 = 0;" statement_identifier : (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7a78))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7a78)" * (cast_expression "(code *)(PTR_000f5314 + 0x7a78)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7a78)" ( (binary_expression "PTR_000f5314 + 0x7a78" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" ( identifier , identifier , number_literal , number_literal , identifier , identifier , number_literal , number_literal ))) ;)) (labeled_statement "LAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" statement_identifier : (if_statement "if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" { (expression_statement "iVar14 = *(int *)(local_f8 + 0x6c) + -1;" (assignment_expression "iVar14 = *(int *)(local_f8 + 0x6c) + -1" identifier = (binary_expression "*(int *)(local_f8 + 0x6c) + -1" (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" if (parenthesized_expression "(iVar14 == iVar35)" ( (binary_expression "iVar14 == iVar35" identifier == identifier) )) (compound_statement "{\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }" { (expression_statement "*(int *)(local_f8 + 0x6c) = iVar35;" (assignment_expression "*(int *)(local_f8 + 0x6c) = iVar35" (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" else (compound_statement "{\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" { (if_statement "if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }" if (parenthesized_expression "(-1 < iVar35)" ( (binary_expression "-1 < iVar35" number_literal < identifier) )) (compound_statement "{\n                  iVar14 = iVar35;\n                }" { (expression_statement "iVar14 = iVar35;" (assignment_expression "iVar14 = iVar35" identifier = identifier) ;) })) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" if (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" * (cast_expression "(char *)(*(int *)local_f8 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_f8 + 0x51)" ( (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }" { (expression_statement "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));" (assignment_expression "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" identifier = (cast_expression "(undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" ( (binary_expression "iVar14 * 0x14 + *(int *)(local_f8 + 0x68)" (binary_expression "iVar14 * 0x14" identifier * number_literal) + (pointer_expression "*(int *)(local_f8 + 0x68)" * (cast_expression "(int *)(local_f8 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x68)" ( (binary_expression "local_f8 + 0x68" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" else (compound_statement "{\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" { (expression_statement "puVar19 = PTR_DAT_000f52bc + 0x5860;" (assignment_expression "puVar19 = PTR_DAT_000f52bc + 0x5860" identifier = (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal)) ;) }))) (expression_statement "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);" (assignment_expression "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c)" (pointer_expression "*(int *)(puVar19 + 8)" * (cast_expression "(int *)(puVar19 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 8)" ( (binary_expression "puVar19 + 8" identifier + number_literal) )))) = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) }))) }))) (if_statement "if (cVar2 != '\0') goto LAB_000b97d4;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b97d4;" goto statement_identifier ;)) }) (else_clause "else if (cVar2 != '\0') goto LAB_000b902c;" else (if_statement "if (cVar2 != '\0') goto LAB_000b902c;" if (parenthesized_expression "(cVar2 != '\0')" ( (binary_expression "cVar2 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_000b902c;" goto statement_identifier ;))))) (labeled_statement "LAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" statement_identifier : (if_statement "if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" { (if_statement "if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" if (parenthesized_expression "(pcVar34 != (code *)0x0)" ( (binary_expression "pcVar34 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" { (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" identifier = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7f,local_cc,local_e0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b916c;" goto statement_identifier ;) })) (expression_statement "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);" (assignment_expression "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" identifier = (cast_expression "(code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x2a,local_80,local_b0,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))))) ;) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;" statement_identifier : (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b839c;" if (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b839c;" goto statement_identifier ;))) (labeled_statement "LAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" statement_identifier : (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1,local_b4,local_c8)" ( identifier , identifier , identifier ))) ;) }))) (goto_statement "goto LAB_000b837c;" goto statement_identifier ;) }))) (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" identifier = (cast_expression "(code *)(param_1[0xe] - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xe] - 1)" ( (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) - number_literal) )))) ;) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) = (cast_expression "(uint)local_d4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" identifier = (pointer_expression "*(int *)(local_f8 + 0x6c)" * (cast_expression "(int *)(local_f8 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + 0x6c)" ( (binary_expression "local_f8 + 0x6c" identifier + number_literal) ))))) ;) (if_statement "if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" { (expression_statement "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0);" (call_expression "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x7e,local_cc,local_dc,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,0)" ( identifier , number_literal , identifier , identifier , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b9a58;" goto statement_identifier ;) })) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" { (for_statement "for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" for ( ; (binary_expression "iVar35 < local_d0" identifier < identifier) ; (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ) (compound_statement "{\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" { (expression_statement "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_9c + iVar35" identifier + identifier) ))) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) })) (labeled_statement "LAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;" statement_identifier : (if_statement "if (local_d8 != (code *)0x0) goto LAB_000b9174;" if (parenthesized_expression "(local_d8 != (code *)0x0)" ( (binary_expression "local_d8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9174;" goto statement_identifier ;))) }) (else_clause "else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" else (compound_statement "{\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" { (if_statement "if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n            local_d0 = 0;\n          }" { (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" else (compound_statement "{\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" { (expression_statement "local_d0 = (int)*(short *)(local_ec + 0x32);" (assignment_expression "local_d0 = (int)*(short *)(local_ec + 0x32)" identifier = (cast_expression "(int)*(short *)(local_ec + 0x32)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(local_ec + 0x32)" * (cast_expression "(short *)(local_ec + 0x32)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_ec + 0x32)" ( (binary_expression "local_ec + 0x32" identifier + number_literal) )))))) ;) }))) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" identifier = identifier) ;) (expression_statement "local_dc = (code *)(param_1[0xb] + 1);" (assignment_expression "local_dc = (code *)(param_1[0xb] + 1)" identifier = (cast_expression "(code *)(param_1[0xb] + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[0xb] + 1)" ( (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;" (assignment_expression "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1" identifier = (binary_expression "pcVar34 + param_1[0xb] + local_d0 + 1" (binary_expression "pcVar34 + param_1[0xb] + local_d0" (binary_expression "pcVar34 + param_1[0xb]" identifier + (subscript_expression "param_1[0xb]" identifier [ number_literal ])) + identifier) + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)local_98;" (assignment_expression "param_1[0xb] = (uint)local_98" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)local_98" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }" { (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (if_statement "if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" { (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "local_cc = (code *)param_1[10];" (assignment_expression "local_cc = (code *)param_1[10]" identifier = (cast_expression "(code *)param_1[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[10]" identifier [ number_literal ]))) ;) (expression_statement "pcVar23 = pcVar34 + iVar35 + local_d0;" (assignment_expression "pcVar23 = pcVar34 + iVar35 + local_d0" identifier = (binary_expression "pcVar34 + iVar35 + local_d0" (binary_expression "pcVar34 + iVar35" identifier + identifier) + identifier)) ;) (expression_statement "param_1[10] = (uint)(local_cc + 1);" (assignment_expression "param_1[10] = (uint)(local_cc + 1)" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (call_expression "(uint)(local_cc + 1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_cc + 1)" ( (binary_expression "local_cc + 1" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" identifier = identifier) ;) (if_statement "if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }" { (expression_statement "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" identifier = (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,100,local_cc,pcVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) }) (else_clause "else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" else (compound_statement "{\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);" (call_expression "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" ( identifier , number_literal , number_literal , identifier , (binary_expression "local_dc + local_d0 + -1" (binary_expression "local_dc + local_d0" identifier + identifier) + number_literal) ))) ;) (expression_statement "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" identifier = (cast_expression "(code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,100,local_cc,pcVar23,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);" (assignment_expression "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" identifier = (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1400)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1400)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x1400)" ( (binary_expression "PTR_FUN_000f5300 + -0x1400" identifier + number_literal) )))) )) (argument_list "(param_1,local_ec)" ( identifier , identifier )))) ;) (if_statement "if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" if (parenthesized_expression "(iVar35 != 0)" ( (binary_expression "iVar35 != 0" identifier != number_literal) )) (compound_statement "{\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" { (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0x280c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x280c)" ( (binary_expression "PTR_LAB_000f52ec + 0x280c" identifier + number_literal) )))) ;) (expression_statement "*(short *)(iVar35 + 8) = (short)pcVar23;" (assignment_expression "*(short *)(iVar35 + 8) = (short)pcVar23" (pointer_expression "*(short *)(iVar35 + 8)" * (cast_expression "(short *)(iVar35 + 8)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 + 8)" ( (binary_expression "iVar35 + 8" identifier + number_literal) )))) = (cast_expression "(short)pcVar23" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "(*pcVar36)(local_f8,iVar35,0xfffffff7);" (call_expression "(*pcVar36)(local_f8,iVar35,0xfffffff7)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,iVar35,0xfffffff7)" ( identifier , identifier , number_literal ))) ;) })) }))) (expression_statement "local_f4 = (code *)(puVar19 + -0x47a8);" (assignment_expression "local_f4 = (code *)(puVar19 + -0x47a8)" identifier = (cast_expression "(code *)(puVar19 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x47a8)" ( (binary_expression "puVar19 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b9260;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b9260;" goto statement_identifier ;)) (if_statement "if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              local_f0 = local_cc;\n            }" { (expression_statement "local_f0 = local_cc;" (assignment_expression "local_f0 = local_cc" identifier = identifier) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(param_1,local_cc,local_ec,param_3,param_2,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" else (compound_statement "{\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" { (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7d5c;" goto statement_identifier ;)) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar20 = param_1;\n          }" { (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" identifier = identifier) ;) })) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" identifier = number_literal) ;) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" * (cast_expression "(undefined1 *)(puVar20 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 5)" ( (binary_expression "puVar20 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" identifier = identifier) ;) (labeled_statement "LAB_000b8330:\n          pcVar23 = local_b0;" statement_identifier : (expression_statement "pcVar23 = local_b0;" (assignment_expression "pcVar23 = local_b0" identifier = identifier) ;)) (if_statement "if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" if (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) )) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8ff0;" goto statement_identifier ;)) (goto_statement "goto LAB_000b9014;" goto statement_identifier ;) })) (labeled_statement "LAB_000b8340:\n          local_d4 = pcVar23;" statement_identifier : (expression_statement "local_d4 = pcVar23;" (assignment_expression "local_d4 = pcVar23" identifier = identifier) ;)) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (if_statement "if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" if (parenthesized_expression "(local_d8 != (code *)0x0)" ( (binary_expression "local_d8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" { (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8358;" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8358;" goto statement_identifier ;)) (labeled_statement "LAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0x59,local_cc,local_ac,local_c8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;)) (labeled_statement "LAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);" statement_identifier : (expression_statement "(*local_f4)(local_f8,0xf,local_c8,0,0);" (call_expression "(*local_f4)(local_f8,0xf,local_c8,0,0)" (parenthesized_expression "(*local_f4)" ( (pointer_expression "*local_f4" * identifier) )) (argument_list "(local_f8,0xf,local_c8,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) })) }))) (labeled_statement "LAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" statement_identifier : (if_statement "if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" if (parenthesized_expression "(local_84 == 0)" ( (binary_expression "local_84 == 0" identifier == number_literal) )) (compound_statement "{\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }" { (if_statement "if (iVar31 != 0) goto LAB_000b8840;" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8840;" goto statement_identifier ;)) (if_statement "if (local_e4 != (uint *)0x0) goto LAB_000b8838;" if (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b8838;" goto statement_identifier ;)) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) }) (else_clause "else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" else (compound_statement "{\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" { (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (if_statement "if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" { (labeled_statement "LAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" statement_identifier : (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" if (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) == 0)" ( (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) == 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" ( (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" * (cast_expression "(uint *)(*param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\nLAB_000b8838:\n              uVar22 = 0;\n            }" { (labeled_statement "LAB_000b8838:\n              uVar22 = 0;" statement_identifier : (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;)) }) (else_clause "else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" else (compound_statement "{\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" { (expression_statement "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);" (assignment_expression "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" identifier = (call_expression "(*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7450))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x7450)" * (cast_expression "(code *)(PTR_000f5314 + 0x7450)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x7450)" ( (binary_expression "PTR_000f5314 + 0x7450" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4)" ( identifier , identifier )))) ;) })))) })) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" ( (binary_expression "PTR_LAB_000f5324 + -0x2fdc" identifier + number_literal) )))) ;) (expression_statement "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);" (assignment_expression "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" identifier = (call_expression "FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" identifier (argument_list "(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" identifier = identifier) ;) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" if (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" { (expression_statement "local_f4 = (code *)0x0;" (assignment_expression "local_f4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" identifier = number_literal) ;) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0xf74)" ( (binary_expression "PTR_LAB_000f52ec + 0xf74" identifier + number_literal) )))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (do_statement "do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));" do (compound_statement "{\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            }" { (expression_statement "iVar35 = (int)(short)uVar33;" (assignment_expression "iVar35 = (int)(short)uVar33" identifier = (cast_expression "(int)(short)uVar33" ( (type_descriptor "int" primitive_type) ) (cast_expression "(short)uVar33" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier))) ;) (if_statement "if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" if (parenthesized_expression "((unaff_s4[9] & 0x20) != 0)" ( (binary_expression "(unaff_s4[9] & 0x20) != 0" (parenthesized_expression "(unaff_s4[9] & 0x20)" ( (binary_expression "unaff_s4[9] & 0x20" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" { (expression_statement "iVar35 = (*pcVar23)(unaff_s4,iVar35);" (assignment_expression "iVar35 = (*pcVar23)(unaff_s4,iVar35)" identifier = (call_expression "(*pcVar23)(unaff_s4,iVar35)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(unaff_s4,iVar35)" ( identifier , identifier )))) ;) })) (if_statement "if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" if (parenthesized_expression "(((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))))" ( (binary_expression "((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" (parenthesized_expression "((uVar25 | uVar22) == 0xffffffff)" ( (binary_expression "(uVar25 | uVar22) == 0xffffffff" (parenthesized_expression "(uVar25 | uVar22)" ( (binary_expression "uVar25 | uVar22" identifier | identifier) )) == number_literal) )) || (parenthesized_expression "((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" ( (parenthesized_expression "(((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))" ( (binary_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" (parenthesized_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0))" ( (binary_expression "(int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" (binary_expression "(int)uVar33 < 0x20" (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) && (parenthesized_expression "((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" ( (binary_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0" (parenthesized_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22))" ( (binary_expression "1 << (uVar33 & 0x1f) & (uVar25 | uVar22)" (binary_expression "1 << (uVar33 & 0x1f)" number_literal << (parenthesized_expression "(uVar33 & 0x1f)" ( (binary_expression "uVar33 & 0x1f" identifier & number_literal) ))) & (parenthesized_expression "(uVar25 | uVar22)" ( (binary_expression "uVar25 | uVar22" identifier | identifier) ))) )) != number_literal) ))) )) || (parenthesized_expression "((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" ( (binary_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0" (parenthesized_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1)" ( (binary_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1" (pointer_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" * (cast_expression "(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + (int)local_f4 + 0x10)" ( (binary_expression "unaff_s4[1] + (int)local_f4 + 0x10" (binary_expression "unaff_s4[1] + (int)local_f4" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }" { (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" ( identifier , identifier , identifier , identifier , (binary_expression "iVar35 + local_94" identifier + identifier) ))) ;) }) (else_clause "else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" else (compound_statement "{\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" { (expression_statement "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);" (call_expression "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0)" (parenthesized_expression "(*(code *)(puVar19 + -0x47a8))" ( (pointer_expression "*(code *)(puVar19 + -0x47a8)" * (cast_expression "(code *)(puVar19 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + -0x47a8)" ( (binary_expression "puVar19 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x48,0,iVar35 + local_94,0)" ( identifier , number_literal , number_literal , (binary_expression "iVar35 + local_94" identifier + identifier) , number_literal ))) ;) }))) (expression_statement "uVar33 = uVar33 + 1;" (assignment_expression "uVar33 = uVar33 + 1" identifier = (binary_expression "uVar33 + 1" identifier + number_literal)) ;) (expression_statement "local_f4 = (code *)((int)local_f4 + 0x14);" (assignment_expression "local_f4 = (code *)((int)local_f4 + 0x14)" identifier = (cast_expression "(code *)((int)local_f4 + 0x14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f4 + 0x14)" ( (binary_expression "(int)local_f4 + 0x14" (cast_expression "(int)local_f4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "(int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)uVar33" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) )) ;) })) (if_statement "if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" if (parenthesized_expression "((local_d8 == (code *)0x0) && (local_ec == 0))" ( (binary_expression "(local_d8 == (code *)0x0) && (local_ec == 0)" (parenthesized_expression "(local_d8 == (code *)0x0)" ( (binary_expression "local_d8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) ))) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x4d,local_e0,local_c8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) })) })))) (expression_statement "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);" (assignment_expression "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" identifier = (call_expression "(*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" (parenthesized_expression "(*local_b4)" ( (pointer_expression "*local_b4" * identifier) )) (argument_list "(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" ( identifier , identifier , identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "puVar19 = PTR_LAB_000f5308;" (assignment_expression "puVar19 = PTR_LAB_000f5308" identifier = identifier) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" if (parenthesized_expression "(0 < iVar35)" ( (binary_expression "0 < iVar35" number_literal < identifier) )) (compound_statement "{\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" { (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" identifier = identifier) ;) (do_statement "do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);" do (compound_statement "{\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          }" { (if_statement "if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" if (parenthesized_expression "(uVar25 == (int)*(short *)(unaff_s4 + 10))" ( (binary_expression "uVar25 == (int)*(short *)(unaff_s4 + 10)" identifier == (cast_expression "(int)*(short *)(unaff_s4 + 10)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) )))))) )) (compound_statement "{\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" { (labeled_statement "LAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);" statement_identifier : (expression_statement "(*pcVar13)(local_f8,0x48,0,pcVar23,0);" (call_expression "(*pcVar13)(local_f8,0x48,0,pcVar23,0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(local_f8,0x48,0,pcVar23,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;)) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }) (else_clause "else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" else (compound_statement "{\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" { (expression_statement "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);" (assignment_expression "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" identifier = (pointer_expression "*(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" * (cast_expression "(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4[1] + uVar25 * 0x14 + 0x10)" ( (binary_expression "unaff_s4[1] + uVar25 * 0x14 + 0x10" (binary_expression "unaff_s4[1] + uVar25 * 0x14" (subscript_expression "unaff_s4[1]" identifier [ number_literal ]) + (binary_expression "uVar25 * 0x14" identifier * number_literal)) + number_literal) ))))) ;) (if_statement "if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" if (parenthesized_expression "((uVar4 & 0x60) == 0)" ( (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" ( (binary_expression "uVar4 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }" { (expression_statement "iVar14 = piVar9[uVar25];" (assignment_expression "iVar14 = piVar9[uVar25]" identifier = (subscript_expression "piVar9[uVar25]" identifier [ identifier ])) ;) (if_statement "if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (compound_statement "{\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }" { (if_statement "if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;" if (parenthesized_expression "((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0))" ( (binary_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" (parenthesized_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20))" ( (binary_expression "((local_64 & 1) != 0) && ((int)uVar25 < 0x20)" (parenthesized_expression "((local_64 & 1) != 0)" ( (binary_expression "(local_64 & 1) != 0" (parenthesized_expression "(local_64 & 1)" ( (binary_expression "local_64 & 1" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "((int)uVar25 < 0x20)" ( (binary_expression "(int)uVar25 < 0x20" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) ))) )) && (parenthesized_expression "((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" ( (binary_expression "(uVar22 >> (uVar25 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar22 >> (uVar25 & 0x1f) & 1)" ( (binary_expression "uVar22 >> (uVar25 & 0x1f) & 1" (binary_expression "uVar22 >> (uVar25 & 0x1f)" identifier >> (parenthesized_expression "(uVar25 & 0x1f)" ( (binary_expression "uVar25 & 0x1f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) (goto_statement "goto LAB_000b8640;" goto statement_identifier ;)) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" identifier = number_literal) ;) }) (else_clause "else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" else (if_statement "if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" if (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }" { (if_statement "if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" { (expression_statement "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);" (call_expression "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23)" (parenthesized_expression "(*(code *)(puVar19 + 0x7228))" ( (pointer_expression "*(code *)(puVar19 + 0x7228)" * (cast_expression "(code *)(puVar19 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7228)" ( (binary_expression "puVar19 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1,param_3[iVar14 * 4 + 1],pcVar23)" ( identifier , (subscript_expression "param_3[iVar14 * 4 + 1]" identifier [ (binary_expression "iVar14 * 4 + 1" (binary_expression "iVar14 * 4" identifier * number_literal) + number_literal) ]) , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) }) (else_clause "else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" else (compound_statement "{\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" { (expression_statement "iVar15 = local_d0;" (assignment_expression "iVar15 = local_d0" identifier = identifier) ;) (if_statement "if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }" if (parenthesized_expression "(local_e8 != (code *)0x0)" ( (binary_expression "local_e8 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    iVar15 = iVar35;\n                  }" { (expression_statement "iVar15 = iVar35;" (assignment_expression "iVar15 = iVar35" identifier = identifier) ;) })) (expression_statement "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);" (call_expression "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" ( identifier , number_literal , identifier , (binary_expression "iVar14 + iVar15" identifier + identifier) , identifier ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) }))))) }) (else_clause "else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" else (if_statement "if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" if (parenthesized_expression "((uVar4 & 0x20) != 0)" ( (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                pcVar23 = pcVar23 + -1;\n              }" { (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" identifier = (binary_expression "pcVar23 + -1" identifier + number_literal)) ;) })))) }))) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" identifier = (binary_expression "uVar25 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((int)uVar25 < iVar35)" ( (binary_expression "(int)uVar25 < iVar35" (cast_expression "(int)uVar25" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) ;) })) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(param_1,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (if_statement "if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" if (parenthesized_expression "((local_64 & 1) == 0)" ( (binary_expression "(local_64 & 1) == 0" (parenthesized_expression "(local_64 & 1)" ( (binary_expression "local_64 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }" { (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" { (labeled_statement "LAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x2f14)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x2f14)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x2f14)" ( (binary_expression "PTR_LAB_000f52c8 + -0x2f14" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , (binary_expression "param_5 & 0xff" identifier & number_literal) , identifier , (pointer_expression "&local_60" & identifier) , identifier , number_literal ))) ;)) (if_statement "if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" if (parenthesized_expression "((local_60 != 0) || (uVar12 != 0))" ( (binary_expression "(local_60 != 0) || (uVar12 != 0)" (parenthesized_expression "(local_60 != 0)" ( (binary_expression "local_60 != 0" identifier != number_literal) )) || (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" { (if_statement "if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" else (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) })) (if_statement "if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" { (labeled_statement "LAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x87,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) (goto_statement "goto LAB_000b8fac;" goto statement_identifier ;) })) (if_statement "if (uVar12 != 0) goto LAB_000b8ea8;" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8ea8;" goto statement_identifier ;)) }) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" else (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" ( identifier , identifier , identifier , number_literal , identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" ( (binary_expression "PTR_LAB_000f52c8 + -0x46bc" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" ( identifier , identifier , identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (local_88 != 0) goto LAB_000b8f88;" if (parenthesized_expression "(local_88 != 0)" ( (binary_expression "local_88 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b8f88;" goto statement_identifier ;)) (labeled_statement "LAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" statement_identifier : (if_statement "if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" if (parenthesized_expression "((1 < iVar31) || (uVar12 != 0))" ( (binary_expression "(1 < iVar31) || (uVar12 != 0)" (parenthesized_expression "(1 < iVar31)" ( (binary_expression "1 < iVar31" number_literal < identifier) )) || (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) ))) )) (compound_statement "{\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" { (labeled_statement "LAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x7a,local_f0,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;)) }))) (if_statement "if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" if (parenthesized_expression "(iVar31 != 0)" ( (binary_expression "iVar31 != 0" identifier != number_literal) )) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3a44" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" ( identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n                  uVar18 = 6;\n                }" { (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" identifier = number_literal) ;) }) (else_clause "else {\n                  uVar18 = 4;\n                }" else (compound_statement "{\n                  uVar18 = 4;\n                }" { (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" if (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) != 0)" ( (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" ( (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" * (cast_expression "(uint *)(*param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x24)" ( (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" * identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x15ac)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x15ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x15ac)" ( (binary_expression "PTR_LAB_000f52c8 + -0x15ac" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" ( identifier , identifier , identifier , identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8698;" goto statement_identifier ;) })) }))) (if_statement "if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n              uVar18 = 6;\n            }" { (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" identifier = number_literal) ;) }) (else_clause "else {\n              uVar18 = 4;\n            }" else (compound_statement "{\n              uVar18 = 4;\n            }" { (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" identifier = number_literal) ;) }))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" * (cast_expression "(code *)(PTR_000f5314 + 0x645c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x645c)" ( (binary_expression "PTR_000f5314 + 0x645c" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal , number_literal ))) ;) })) }) (else_clause "else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" else (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x336c)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x336c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x336c)" ( (binary_expression "PTR_LAB_000f52e8 + -0x336c" identifier + number_literal) )))) )) (argument_list "(local_f8,unaff_s4,local_90)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" identifier = (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" ( (binary_expression "PTR_LAB_000f5324 + -0x2d3c" identifier + number_literal) )))) ;) (expression_statement "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);" (call_expression "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" identifier (argument_list "(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" if (parenthesized_expression "(local_e8 == (code *)0x0)" ( (binary_expression "local_e8 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" { (if_statement "if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" if (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" else (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4660" identifier + number_literal) )))) )) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" ( identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) }))) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" ( (binary_expression "PTR_LAB_000f5308 + 0x7574" identifier + number_literal) )))) ;) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" identifier = identifier) ;) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" identifier = number_literal) ;) (while_statement "while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" while (parenthesized_expression "(iVar35 < iVar14)" ( (binary_expression "iVar35 < iVar14" identifier < identifier) )) (compound_statement "{\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" { (expression_statement "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);" (assignment_expression "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" identifier = (pointer_expression "*(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" * (cast_expression "(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar35 * 0x14 + unaff_s4[1] + 0x10)" ( (binary_expression "iVar35 * 0x14 + unaff_s4[1] + 0x10" (binary_expression "iVar35 * 0x14 + unaff_s4[1]" (binary_expression "iVar35 * 0x14" identifier * number_literal) + (subscript_expression "unaff_s4[1]" identifier [ number_literal ])) + number_literal) ))))) ;) (if_statement "if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" if (parenthesized_expression "((uVar4 & 0x60) == 0)" ( (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" ( (binary_expression "uVar4 & 0x60" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }" { (if_statement "if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;" if (parenthesized_expression "((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))" ( (binary_expression "(-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10))" (parenthesized_expression "(-1 < piVar9[iVar35])" ( (binary_expression "-1 < piVar9[iVar35]" number_literal < (subscript_expression "piVar9[iVar35]" identifier [ identifier ])) )) || (parenthesized_expression "(iVar35 == *(short *)(unaff_s4 + 10))" ( (binary_expression "iVar35 == *(short *)(unaff_s4 + 10)" identifier == (pointer_expression "*(short *)(unaff_s4 + 10)" * (cast_expression "(short *)(unaff_s4 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s4 + 10)" ( (binary_expression "unaff_s4 + 10" identifier + number_literal) ))))) ))) )) (goto_statement "goto LAB_000b95b4;" goto statement_identifier ;)) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) (expression_statement "local_e8 = pcVar36;" (assignment_expression "local_e8 = pcVar36" identifier = identifier) ;) }) (else_clause "else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" else (compound_statement "{\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" { (if_statement "if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }" if (parenthesized_expression "((uVar4 & 0x20) != 0)" ( (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" ( (binary_expression "uVar4 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  pcVar23 = pcVar23 + -1;\n                }" { (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" identifier = (binary_expression "pcVar23 + -1" identifier + number_literal)) ;) })) (labeled_statement "LAB_000b95b4:\n                pcVar23 = pcVar23 + 1;" statement_identifier : (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" identifier = (binary_expression "pcVar23 + 1" identifier + number_literal)) ;)) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" identifier = (binary_expression "iVar35 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" if (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" ( (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" ( (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" ( (binary_expression "PTR_LAB_000f52c8 + -0x7554" identifier + number_literal) )))) )) (argument_list "(param_1,local_90,unaff_s4)" ( identifier , identifier , identifier ))) ;) })) (goto_statement "goto LAB_000b8da4;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" statement_identifier : (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x52,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) }))) (expression_statement "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);" (call_expression "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" (parenthesized_expression "(*unaff_s3)" ( (pointer_expression "*unaff_s3" * identifier) )) (argument_list "(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" ( identifier , identifier , number_literal , identifier , number_literal , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(cVar2 == '\x01')" ( (binary_expression "cVar2 == '\x01'" identifier == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }" { (labeled_statement "LAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" statement_identifier : (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;)) }) (else_clause "else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (if_statement "if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" if (parenthesized_expression "(cVar2 == '\x02')" ( (binary_expression "cVar2 == '\x02'" identifier == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }" { (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(local_7c)" ( identifier ))) ;) }) (else_clause "else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" else (compound_statement "{\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" { (if_statement "if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" if (parenthesized_expression "((local_ec == 0) && (pcVar34 == (code *)0x0))" ( (binary_expression "(local_ec == 0) && (pcVar34 == (code *)0x0)" (parenthesized_expression "(local_ec == 0)" ( (binary_expression "local_ec == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar34 == (code *)0x0)" ( (binary_expression "pcVar34 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0xb,0,local_d4,0)" ( identifier , number_literal , number_literal , identifier , number_literal ))) ;) (goto_statement "goto LAB_000b881c;" goto statement_identifier ;) })) (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" ( (binary_expression "PTR_LAB_000f52e8 + -0x4a64" identifier + number_literal) )))) ;) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_d4)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,5,local_cc,local_a0,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "unaff_s3 = local_f8;" (assignment_expression "unaff_s3 = local_f8" identifier = identifier) ;) }))))) (expression_statement "(*pcVar34)(local_f8,local_b0);" (call_expression "(*pcVar34)(local_f8,local_b0)" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "(local_f8,local_b0)" ( identifier , identifier ))) ;) (if_statement "if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" if (parenthesized_expression "((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0))" ( (binary_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)" (parenthesized_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))" ( (binary_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0)" (parenthesized_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0))" ( (binary_expression "(*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" * (cast_expression "(char *)((int)param_1 + 0x12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x12)" ( (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(param_1[0x1e] == 0)" ( (binary_expression "param_1[0x1e] == 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(local_100 == 0)" ( (binary_expression "local_100 == 0" identifier == number_literal) ))) )) && (parenthesized_expression "(param_1[0x1c] != 0)" ( (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" { (expression_statement "(*(code *)(PTR_000f5314 + 0x78e0))(param_1);" (call_expression "(*(code *)(PTR_000f5314 + 0x78e0))(param_1)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x78e0))" ( (pointer_expression "*(code *)(PTR_000f5314 + 0x78e0)" * (cast_expression "(code *)(PTR_000f5314 + 0x78e0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_000f5314 + 0x78e0)" ( (binary_expression "PTR_000f5314 + 0x78e0" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" if (parenthesized_expression "(local_a8 != 0)" ( (binary_expression "local_a8 != 0" identifier != number_literal) )) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) )) (argument_list "(local_f8,0x50,local_a8,1,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7e44)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7e44)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x7e44)" ( (binary_expression "PTR_LAB_000f52ec + 0x7e44" identifier + number_literal) )))) )) (argument_list "(local_f8,1)" ( identifier , number_literal ))) ;) (expression_statement "pcVar34 = local_f8;" (assignment_expression "pcVar34 = local_f8" identifier = identifier) ;) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" if (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" * (cast_expression "(char *)(*(int *)local_f8 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)local_f8 + 0x51)" ( (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" { (expression_statement "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);" (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1e28)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1e28)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x1e28)" ( (binary_expression "PTR_FUN_000f5300 + -0x1e28" identifier + number_literal) )))) )) (argument_list "(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" ( identifier , number_literal , number_literal , (binary_expression "PTR_DAT_000f52d4 + -0x67ec" identifier + number_literal) , number_literal ))) ;) })) })) }) (else_clause "else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" else (compound_statement "{\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" { (expression_statement "local_e4 = (uint *)unaff_s4[0x10];" (assignment_expression "local_e4 = (uint *)unaff_s4[0x10]" identifier = (cast_expression "(uint *)unaff_s4[0x10]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "unaff_s4[0x10]" identifier [ number_literal ]))) ;) (expression_statement "pcVar34 = (code *)param_1[2];" (assignment_expression "pcVar34 = (code *)param_1[2]" identifier = (cast_expression "(code *)param_1[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar12 = *param_1;" (assignment_expression "uVar12 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" if (parenthesized_expression "(local_e4 != (uint *)0x0)" ( (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" { (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" identifier = (pointer_expression "*local_e4" * identifier)) ;) (while_statement "while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }" while (parenthesized_expression "((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)))" ( (parenthesized_expression "(uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))" ( (binary_expression "uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" (binary_expression "uVar22 != uVar12" identifier != identifier) && (parenthesized_expression "(local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" ( (comma_expression "local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0" (assignment_expression "local_e4 = (uint *)local_e4[6]" identifier = (cast_expression "(uint *)local_e4[6]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "local_e4[6]" identifier [ number_literal ]))) , (binary_expression "local_e4 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) )) (compound_statement "{\n            uVar22 = *local_e4;\n          }" { (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" identifier = (pointer_expression "*local_e4" * identifier)) ;) })) })) (expression_statement "local_100 = param_1[10];" (assignment_expression "local_100 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;" (assignment_expression "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2" identifier = (binary_expression "*(short *)((int)unaff_s4 + 0x2a) + 2" (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal)) ;) (expression_statement "iVar31 = param_2[0xc];" (assignment_expression "iVar31 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" identifier = (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" ( (binary_expression "PTR_LAB_000f52e8 + -0x47a8" identifier + number_literal) )))) ;) (expression_statement "param_1[10] = local_100 + 1;" (assignment_expression "param_1[10] = local_100 + 1" (subscript_expression "param_1[10]" identifier [ number_literal ]) = (binary_expression "local_100 + 1" identifier + number_literal)) ;) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" identifier = (cast_expression "(code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(pcVar34,100,local_100,iVar14,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,100,local_100,iVar14,0)" ( identifier , number_literal , identifier , identifier , number_literal ))))) ;) (expression_statement "local_e0 = (code *)param_1[0xb];" (assignment_expression "local_e0 = (code *)param_1[0xb]" identifier = (cast_expression "(code *)param_1[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0xb]" identifier [ number_literal ]))) ;) (expression_statement "iVar35 = *param_2;" (assignment_expression "iVar35 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pcVar23 = local_e0 + iVar14;" (assignment_expression "pcVar23 = local_e0 + iVar14" identifier = (binary_expression "local_e0 + iVar14" identifier + identifier)) ;) (expression_statement "local_e8 = local_e0 + 1;" (assignment_expression "local_e8 = local_e0 + 1" identifier = (binary_expression "local_e0 + 1" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar23" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" if (parenthesized_expression "(iVar35 < 2)" ( (binary_expression "iVar35 < 2" identifier < number_literal) )) (compound_statement "{\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }" { (expression_statement "pcVar13 = pcVar23 + 2;" (assignment_expression "pcVar13 = pcVar23 + 2" identifier = (binary_expression "pcVar23 + 2" identifier + number_literal)) ;) (expression_statement "param_1[0xb] = (uint)pcVar13;" (assignment_expression "param_1[0xb] = (uint)pcVar13" (subscript_expression "param_1[0xb]" identifier [ number_literal ]) = (cast_expression "(uint)pcVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);" (assignment_expression "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" identifier = (cast_expression "(code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" identifier (argument_list "(param_1,param_2,param_4,0,0,4,0)" ( identifier , identifier , identifier , number_literal , number_literal , number_literal , number_literal ))))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) (if_statement "if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;" if (parenthesized_expression "(unaff_s3 == (code *)0x0)" ( (binary_expression "unaff_s3 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b7aa8;" goto statement_identifier ;)) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "local_d4 = local_e0 + 3;" (assignment_expression "local_d4 = local_e0 + 3" identifier = (binary_expression "local_e0 + 3" identifier + number_literal)) ;) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228)" identifier = (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) ;) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" identifier = identifier) ;) (while_statement "while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" while (parenthesized_expression "(iVar15 < iVar35)" ( (binary_expression "iVar15 < iVar35" identifier < identifier) )) (compound_statement "{\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" { (if_statement "if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" if (parenthesized_expression "(*piVar11 < 0)" ( (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" * identifier) < number_literal) )) (compound_statement "{\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }" { (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_d4 + iVar15" identifier + identifier) ))) ;) (if_statement "if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" if (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) < 1)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) < 1" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }" { (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" else (compound_statement "{\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" { (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;" (assignment_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1" (pointer_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" * (cast_expression "(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = number_literal) ;) }))) }) (else_clause "else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" else (compound_statement "{\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" { (if_statement "if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" { (expression_statement "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);" (call_expression "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1])" (parenthesized_expression "(*pcVar16)" ( (pointer_expression "*pcVar16" * identifier) )) (argument_list "(param_1,param_3[*piVar11 * 4 + 1])" ( identifier , (subscript_expression "param_3[*piVar11 * 4 + 1]" identifier [ (binary_expression "*piVar11 * 4 + 1" (binary_expression "*piVar11 * 4" (pointer_expression "*piVar11" * identifier) * number_literal) + number_literal) ]) ))) ;) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) })) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" identifier = (binary_expression "iVar15 + 1" identifier + number_literal)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) }))) })) (if_statement "if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" if (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" ( (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" ( (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }" { (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x7f,iVar31,local_e8,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (if_statement "if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }" { (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x7f,iVar31,local_e0 + 2,0)" ( identifier , number_literal , identifier , (binary_expression "local_e0 + 2" identifier + number_literal) , number_literal ))) ;) }) (else_clause "else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" else (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" if (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" { (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" ( (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" * (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" ( (binary_expression "PTR_LAB_000f5308 + 0x7228" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })))) }) (else_clause "else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" else (compound_statement "{\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" { (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" identifier = (subscript_expression "unaff_s4[2]" identifier [ number_literal ])) ;) (while_statement "while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" { (if_statement "if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" { (expression_statement "pcVar34 = (code *)trap(0);" (assignment_expression "pcVar34 = (code *)trap(0)" identifier = (cast_expression "(code *)trap(0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "trap(0)" identifier (argument_list "(0)" ( number_literal ))))) ;) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" ( (pointer_expression "*pcVar34" * identifier) )) (argument_list "()" ( ))) ;) })) (if_statement "if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;" if (parenthesized_expression "((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80)" ( (binary_expression "(*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80" (parenthesized_expression "(*(byte *)(uVar12 + 0x37) & 0xc0)" ( (binary_expression "*(byte *)(uVar12 + 0x37) & 0xc0" (pointer_expression "*(byte *)(uVar12 + 0x37)" * (cast_expression "(byte *)(uVar12 + 0x37)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x37)" ( (binary_expression "uVar12 + 0x37" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = *(uint *)(uVar12 + 0x14);" (assignment_expression "uVar12 = *(uint *)(uVar12 + 0x14)" identifier = (pointer_expression "*(uint *)(uVar12 + 0x14)" * (cast_expression "(uint *)(uVar12 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 + 0x14)" ( (binary_expression "uVar12 + 0x14" identifier + number_literal) ))))) ;) })) (expression_statement "local_d4 = (code *)(int)**(short **)(uVar12 + 4);" (assignment_expression "local_d4 = (code *)(int)**(short **)(uVar12 + 4)" identifier = (cast_expression "(code *)(int)**(short **)(uVar12 + 4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(int)**(short **)(uVar12 + 4)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "**(short **)(uVar12 + 4)" * (pointer_expression "*(short **)(uVar12 + 4)" * (cast_expression "(short **)(uVar12 + 4)" ( (type_descriptor "short **" (sized_type_specifier "short" short) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(uVar12 + 4)" ( (binary_expression "uVar12 + 4" identifier + number_literal) )))))))) ;) (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0xa6,iVar31,local_d4,local_e8)" ( identifier , number_literal , identifier , identifier , identifier ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" ( identifier , number_literal , (binary_expression "local_e0 + 3 + (int)local_d4" (binary_expression "local_e0 + 3" identifier + number_literal) + (cast_expression "(int)local_d4" ( (type_descriptor "int" primitive_type) ) identifier)) , (binary_expression "local_e0 + 2" identifier + number_literal) , number_literal ))) ;) }))) (expression_statement "local_34 = *(code **)(unaff_s3 + 0x14);" (assignment_expression "local_34 = *(code **)(unaff_s3 + 0x14)" identifier = (pointer_expression "*(code **)(unaff_s3 + 0x14)" * (cast_expression "(code **)(unaff_s3 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s3 + 0x14)" ( (binary_expression "unaff_s3 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "local_30 = *(code **)(unaff_s3 + 0x18);" (assignment_expression "local_30 = *(code **)(unaff_s3 + 0x18)" identifier = (pointer_expression "*(code **)(unaff_s3 + 0x18)" * (cast_expression "(code **)(unaff_s3 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(unaff_s3 + 0x18)" ( (binary_expression "unaff_s3 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];" (assignment_expression "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e]" identifier = (cast_expression "(code *)(uint)(byte)unaff_s3[0x2e]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)(byte)unaff_s3[0x2e]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)unaff_s3[0x2e]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "unaff_s3[0x2e]" identifier [ number_literal ]))))) ;) (if_statement "if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" if (parenthesized_expression "(pcVar16 == (code *)0x0)" ( (binary_expression "pcVar16 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" { (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar17 = param_1;\n            }" { (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)(puVar17 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar17 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar17 + 5)" * (cast_expression "(undefined1 *)(puVar17 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar17 + 5)" ( (binary_expression "puVar17 + 5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);" (call_expression "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" ( identifier , number_literal , identifier , identifier , (binary_expression "pcVar23 + 1" identifier + number_literal) ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);" (call_expression "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x78,local_100,pcVar13,0)" ( identifier , number_literal , identifier , identifier , number_literal ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);" (call_expression "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" ( identifier , number_literal , identifier , (binary_expression "pcVar23 + 1" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_000b80d0;" goto statement_identifier ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" ( (binary_expression "PTR_LAB_000f52ec + 0x29e8" identifier + number_literal) )))) )) (argument_list "(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" ( (pointer_expression "*(int *)pcVar34" * (cast_expression "(int *)pcVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (binary_expression "pcVar34 + 0x68" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*pcVar36)(pcVar34,0x74,iVar31,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,iVar31,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x74,iVar31,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "local_e0 = pcVar16;" (assignment_expression "local_e0 = pcVar16" identifier = identifier) ;) (expression_statement "local_b0 = pcVar16;" (assignment_expression "local_b0 = pcVar16" identifier = identifier) ;) }) (else_clause "else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" else (compound_statement "{\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" { (if_statement "if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" if (parenthesized_expression "(local_b4 == (code *)0x0)" ( (binary_expression "local_b4 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }" { (expression_statement "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);" (assignment_expression "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" identifier = (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))" ( (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x5d30)" * (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" ( (binary_expression "PTR_FUN_000f5300 + -0x5d30" identifier + number_literal) )))) )) (argument_list "(param_1,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" else (compound_statement "{\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" { (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" identifier = (call_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))" ( (pointer_expression "*(code *)(PTR_LAB_000f52fc + -0x7698)" * (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) )) (argument_list "(uVar12)" ( identifier )))) ;) }))) (expression_statement "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);" (assignment_expression "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4)" identifier = (cast_expression "(code *)(PTR_LAB_000f530c + 0x59e4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x59e4)" ( (binary_expression "PTR_LAB_000f530c + 0x59e4" identifier + number_literal) )))) ;) (expression_statement "iVar31 = (*local_e0)(*param_1,0,uVar18);" (assignment_expression "iVar31 = (*local_e0)(*param_1,0,uVar18)" identifier = (call_expression "(*local_e0)(*param_1,0,uVar18)" (parenthesized_expression "(*local_e0)" ( (pointer_expression "*local_e0" * identifier) )) (argument_list "(*param_1,0,uVar18)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" if (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" ( (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" number_literal < (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) )) (compound_statement "{\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" { (expression_statement "local_f0 = (code *)0x1;" (assignment_expression "local_f0 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);" (assignment_expression "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30)" identifier = (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" ( (binary_expression "PTR_FUN_000f5300 + -0x5d30" identifier + number_literal) )))) ;) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698)" identifier = (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" ( (binary_expression "PTR_LAB_000f52fc + -0x7698" identifier + number_literal) )))) ;) (expression_statement "local_f8 = (code *)piVar9;" (assignment_expression "local_f8 = (code *)piVar9" identifier = (cast_expression "(code *)piVar9" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);" do (compound_statement "{\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            }" { (if_statement "if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" if (parenthesized_expression "(*(int *)local_f8 < 0)" ( (binary_expression "*(int *)local_f8 < 0" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) < number_literal) )) (compound_statement "{\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }" { (expression_statement "uVar22 = (*pcVar23)(param_1,0x4b,0,0);" (assignment_expression "uVar22 = (*pcVar23)(param_1,0x4b,0,0)" identifier = (call_expression "(*pcVar23)(param_1,0x4b,0,0)" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "(param_1,0x4b,0,0)" ( identifier , number_literal , number_literal , number_literal )))) ;) (if_statement "if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" { (expression_statement "*(short *)(uVar22 + 0x20) = (short)local_f0;" (assignment_expression "*(short *)(uVar22 + 0x20) = (short)local_f0" (pointer_expression "*(short *)(uVar22 + 0x20)" * (cast_expression "(short *)(uVar22 + 0x20)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar22 + 0x20)" ( (binary_expression "uVar22 + 0x20" identifier + number_literal) )))) = (cast_expression "(short)local_f0" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) }) (else_clause "else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" else (compound_statement "{\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" { (expression_statement "uVar22 = param_3[*(int *)local_f8 * 4 + 1];" (assignment_expression "uVar22 = param_3[*(int *)local_f8 * 4 + 1]" identifier = (subscript_expression "param_3[*(int *)local_f8 * 4 + 1]" identifier [ (binary_expression "*(int *)local_f8 * 4 + 1" (binary_expression "*(int *)local_f8 * 4" (pointer_expression "*(int *)local_f8" * (cast_expression "(int *)local_f8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) * number_literal) + number_literal) ])) ;) (if_statement "if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" { (expression_statement "uVar22 = (*pcVar13)(uVar12,uVar22,0,0);" (assignment_expression "uVar22 = (*pcVar13)(uVar12,uVar22,0,0)" identifier = (call_expression "(*pcVar13)(uVar12,uVar22,0,0)" (parenthesized_expression "(*pcVar13)" ( (pointer_expression "*pcVar13" * identifier) )) (argument_list "(uVar12,uVar22,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) })) }))) (expression_statement "iVar31 = (*local_e0)(*param_1,iVar31,uVar22);" (assignment_expression "iVar31 = (*local_e0)(*param_1,iVar31,uVar22)" identifier = (call_expression "(*local_e0)(*param_1,iVar31,uVar22)" (parenthesized_expression "(*local_e0)" ( (pointer_expression "*local_e0" * identifier) )) (argument_list "(*param_1,iVar31,uVar22)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier )))) ;) (expression_statement "local_f8 = (code *)((int)local_f8 + 4);" (assignment_expression "local_f8 = (code *)((int)local_f8 + 4)" identifier = (cast_expression "(code *)((int)local_f8 + 4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f8 + 4)" ( (binary_expression "(int)local_f8 + 4" (cast_expression "(int)local_f8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" identifier = (binary_expression "(int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" * (cast_expression "(short *)((int)unaff_s4 + 0x2a)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s4 + 0x2a)" ( (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))))) ;) (expression_statement "local_f0 = (code *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (code *)((int)local_f0 + 1)" identifier = (cast_expression "(code *)((int)local_f0 + 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 + 1)" ( (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "local_d4 = pcVar32;" (assignment_expression "local_d4 = pcVar32" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5)" ( identifier )) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" ( (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" * (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" ( (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" identifier + number_literal) )))) )) (argument_list "(param_1,local_100,0,iVar31,param_2,param_4)" ( identifier , identifier , number_literal , identifier , identifier , identifier ))) ;) (if_statement "if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" if (parenthesized_expression "(iVar31 == 0)" ( (binary_expression "iVar31 == 0" identifier == number_literal) )) (compound_statement "{\n            unaff_s3 = (code *)0x0;\n          }" { (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" else (compound_statement "{\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" { (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" ( (binary_expression "PTR_LAB_000f530c + 0x3aa4" identifier + number_literal) )))) )) (argument_list "(uVar12,iVar31)" ( identifier , identifier ))) ;) }))) (labeled_statement "LAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" statement_identifier : (if_statement "if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" if (parenthesized_expression "(*param_2 == 1)" ( (binary_expression "*param_2 == 1" (pointer_expression "*param_2" * identifier) == number_literal) )) (compound_statement "{\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) }))) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" identifier = (cast_expression "(code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar36)(pcVar34,0x25,local_100,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x25,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))))) ;) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" identifier = number_literal) ;) (if_statement "if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" if (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) (compound_statement "{\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" { (do_statement "do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);" do (compound_statement "{\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            }" { (expression_statement "iVar35 = iVar31 + 1;" (assignment_expression "iVar35 = iVar31 + 1" identifier = (binary_expression "iVar31 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);" (call_expression "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" ( identifier , number_literal , identifier , identifier , (binary_expression "local_e8 + iVar31" identifier + identifier) ))) ;) (expression_statement "iVar31 = iVar35;" (assignment_expression "iVar31 = iVar35" identifier = identifier) ;) }) while (parenthesized_expression "(iVar14 != iVar35)" ( (binary_expression "iVar14 != iVar35" identifier != identifier) )) ;) })) }))) (expression_statement "pcVar23 = local_f0;" (assignment_expression "pcVar23 = local_f0" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6b18)" * (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6b18)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + 0x6b18)" ( (binary_expression "PTR_LAB_000f52ec + 0x6b18" identifier + number_literal) )))) )) (argument_list "(param_1,unaff_s4)" ( identifier , identifier ))) ;) (expression_statement "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);" (assignment_expression "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8)" identifier = (call_expression "(*pcVar36)(pcVar34,10,0,iVar14,local_e8)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,10,0,iVar14,local_e8)" ( identifier , number_literal , number_literal , identifier , identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" ( (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" * (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" ( (binary_expression "PTR_LAB_000f52e8 + -0x37ac" identifier + number_literal) )))) )) (argument_list "(pcVar34,uVar18,local_e4,0xfffffff4)" ( identifier , identifier , identifier , number_literal ))) ;) (if_statement "if (param_5 == 0xb) {\n          param_5 = 2;\n        }" if (parenthesized_expression "(param_5 == 0xb)" ( (binary_expression "param_5 == 0xb" identifier == number_literal) )) (compound_statement "{\n          param_5 = 2;\n        }" { (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" identifier = number_literal) ;) })) (if_statement "if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" if (parenthesized_expression "(0 < *(int *)(pcVar34 + 0x6c))" ( (binary_expression "0 < *(int *)(pcVar34 + 0x6c)" number_literal < (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) ))))) )) (compound_statement "{\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" { (expression_statement "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;" (assignment_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5" (pointer_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" * (cast_expression "(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" ( (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" * (cast_expression "(int *)(pcVar34 + 0x6c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) + number_literal) )))) = (cast_expression "(short)param_5" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) })) (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" identifier = (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ]))) ;) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }" if (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" ( (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[0x1d]" identifier [ number_literal ])) == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar17 = param_1;\n        }" { (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" identifier = identifier) ;) })) (expression_statement "*(undefined1 *)((int)puVar17 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)puVar17 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)puVar17 + 0x15)" * (cast_expression "(undefined1 *)((int)puVar17 + 0x15)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar17 + 0x15)" ( (binary_expression "(int)puVar17 + 0x15" (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" if (parenthesized_expression "(local_b0 == (code *)0x0)" ( (binary_expression "local_b0 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }" { (expression_statement "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);" (call_expression "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,5,local_100,local_f0 + 1,0)" ( identifier , number_literal , identifier , (binary_expression "local_f0 + 1" identifier + number_literal) , number_literal ))) ;) (if_statement "if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" if (parenthesized_expression "((int)local_f0 < 0)" ( (binary_expression "(int)local_f0 < 0" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" { (expression_statement "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);" (assignment_expression "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1)" identifier = (cast_expression "(code *)(*(uint *)(pcVar34 + 0x6c) - 1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint *)(pcVar34 + 0x6c) - 1)" ( (binary_expression "*(uint *)(pcVar34 + 0x6c) - 1" (pointer_expression "*(uint *)(pcVar34 + 0x6c)" * (cast_expression "(uint *)(pcVar34 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) )))) - number_literal) )))) ;) })) (if_statement "if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" if (parenthesized_expression "(*(char *)(*(int *)pcVar34 + 0x51) == '\0')" ( (binary_expression "*(char *)(*(int *)pcVar34 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)pcVar34 + 0x51)" * (cast_expression "(char *)(*(int *)pcVar34 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)pcVar34 + 0x51)" ( (binary_expression "*(int *)pcVar34 + 0x51" (pointer_expression "*(int *)pcVar34" * (cast_expression "(int *)pcVar34" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }" { (expression_statement "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));" (assignment_expression "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" identifier = (cast_expression "(uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" ( (binary_expression "(int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "(int)local_f0 * 0x14" (cast_expression "(int)local_f0" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + (pointer_expression "*(int *)(pcVar34 + 0x68)" * (cast_expression "(int *)(pcVar34 + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x68)" ( (binary_expression "pcVar34 + 0x68" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" else (compound_statement "{\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" { (expression_statement "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);" (assignment_expression "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860)" identifier = (cast_expression "(uint *)(PTR_DAT_000f52bc + 0x5860)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_000f52bc + 0x5860)" ( (binary_expression "PTR_DAT_000f52bc + 0x5860" identifier + number_literal) )))) ;) }))) (expression_statement "param_1[2] = *(uint *)(pcVar34 + 0x6c);" (assignment_expression "param_1[2] = *(uint *)(pcVar34 + 0x6c)" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (pointer_expression "*(uint *)(pcVar34 + 0x6c)" * (cast_expression "(uint *)(pcVar34 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar34 + 0x6c)" ( (binary_expression "pcVar34 + 0x6c" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar36)(pcVar34,0x74,local_100,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,local_100,0,0)" (parenthesized_expression "(*pcVar36)" ( (pointer_expression "*pcVar36" * identifier) )) (argument_list "(pcVar34,0x74,local_100,0,0)" ( identifier , number_literal , identifier , number_literal , number_literal ))) ;) (expression_statement "unaff_s3 = pcVar23;" (assignment_expression "unaff_s3 = pcVar23" identifier = identifier) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) }) (else_clause "else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" else (compound_statement "{\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" { (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" ( (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" * (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" ( (binary_expression "PTR_LAB_000f530c + 0x4c88" identifier + number_literal) )))) )) (argument_list "(unaff_s3)" ( identifier ))) ;) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" identifier = identifier) ;) }))) }))) }))) (labeled_statement "LAB_000b7aa8:\n    puVar17 = local_58;" statement_identifier : (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" identifier = identifier) ;)) (if_statement "if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" if (parenthesized_expression "(local_58 != (uint *)0x0)" ( (binary_expression "local_58 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" { (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))" ( (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x7728)" * (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) )) (argument_list "(pcVar32,piVar9)" ( identifier , identifier ))) ;) (expression_statement "unaff_s4 = puVar20;" (assignment_expression "unaff_s4 = puVar20" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier short) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * IDENT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , IDENT , (pointer_expression & IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (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)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT != LIT)) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement 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) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) = (cast_expression ( (type_descriptor TYPE) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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)) ;) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;) }))) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) )))) ;)) (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 (subscript_expression IDENT [ IDENT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT))) )) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) ))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) + LIT) )))) , IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ (subscript_expression IDENT [ IDENT ]))) >> LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_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 TYPE) ) IDENT) + IDENT) + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT)) ;) (labeled_statement statement_identifier : (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 IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (binary_expression IDENT != LIT)) , IDENT ))) ;) (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 = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT << LIT) != IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) })))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (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 IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) == (char_literal ' escape_sequence ')) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (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 TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) = 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 TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) >> LIT) ))) )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , LIT , IDENT , IDENT , LIT , LIT ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;))))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (for_statement for ( ; (binary_expression IDENT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + IDENT) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , (binary_expression (binary_expression IDENT + IDENT) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;)) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT )))) ;) })))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT | IDENT) )) == LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & (parenthesized_expression ( (binary_expression IDENT | IDENT) ))) )) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + IDENT) , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) })) })))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) }))))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , (binary_expression IDENT & LIT) , IDENT , (pointer_expression & IDENT) , IDENT , LIT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT ))) ;) (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 (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT * LIT) + (subscript_expression IDENT [ LIT ])) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ IDENT ])) )) || (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , LIT , IDENT , LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , LIT ))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) = LIT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * IDENT) * LIT) + LIT) ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , 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 (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) })))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) })) (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) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) , (binary_expression IDENT + LIT) , LIT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , LIT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , LIT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) * LIT) + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( IDENT )) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , IDENT , (binary_expression IDENT + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })))
(function_definition "void FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)\n\n{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_000b727c(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" (identifier "FUN_000b727c") (parameter_list "(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint *param_3" (type_identifier "uint") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "uint param_5" (type_identifier "uint") (identifier "param_5")) (, ",") (parameter_declaration "uint param_6" (type_identifier "uint") (identifier "param_6")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char cVar2;\n  short sVar3;\n  ushort uVar4;\n  bool bVar5;\n  undefined *puVar6;\n  undefined *puVar7;\n  undefined *puVar8;\n  int *piVar9;\n  uint *puVar10;\n  int *piVar11;\n  uint uVar12;\n  code *pcVar13;\n  int iVar14;\n  int iVar15;\n  code *pcVar16;\n  uint *puVar17;\n  undefined4 uVar18;\n  undefined *puVar19;\n  uint *puVar20;\n  undefined4 uVar21;\n  uint uVar22;\n  code *pcVar23;\n  byte *pbVar24;\n  uint uVar25;\n  byte *pbVar26;\n  byte *pbVar27;\n  short *psVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  code *pcVar32;\n  uint uVar33;\n  code *pcVar34;\n  code *unaff_s3;\n  uint *unaff_s4;\n  uint *unaff_s5;\n  int iVar35;\n  code *pcVar36;\n  uint local_100;\n  code *local_f8;\n  code *local_f4;\n  code *local_f0;\n  uint local_ec;\n  code *local_e8;\n  uint *local_e4;\n  code *local_e0;\n  code *local_dc;\n  code *local_d8;\n  code *local_d4;\n  int local_d0;\n  code *local_cc;\n  code *local_c8;\n  code *local_c4;\n  code *local_b4;\n  code *local_b0;\n  code *local_ac;\n  uint local_a8;\n  int local_a4;\n  int local_a0;\n  code *local_9c;\n  code *local_98;\n  int local_94;\n  code *local_90;\n  code *local_8c;\n  uint local_88;\n  int local_84;\n  uint local_80;\n  int local_7c;\n  uint *local_78;\n  uint local_64;\n  int local_60;\n  uint local_5c;\n  uint *local_58;\n  uint *local_54;\n  int *local_50;\n  uint local_4c;\n  undefined4 local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  code *local_34;\n  code *local_30;\n  int local_2c;\n  \n  puVar8 = PTR___stack_chk_guard_000f5568;\n  local_100 = param_6;\n  pcVar34 = (code *)param_1[9];\n  local_60 = 0;\n  local_5c = 0;\n  local_58 = (uint *)0x0;\n  local_2c = *(int *)PTR___stack_chk_guard_000f5568;\n  pcVar32 = (code *)*param_1;\n  if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }\n  do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "short sVar3;" (sized_type_specifier "short" (short "short")) (identifier "sVar3") (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "bool bVar5;" (primitive_type "bool") (identifier "bVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "undefined *puVar7;" (type_identifier "undefined") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "uint *puVar10;" (type_identifier "uint") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "code *pcVar13;" (type_identifier "code") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "code *pcVar16;" (type_identifier "code") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "uint *puVar17;" (type_identifier "uint") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 uVar21;" (type_identifier "undefined4") (identifier "uVar21") (; ";")) (declaration "uint uVar22;" (type_identifier "uint") (identifier "uVar22") (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "byte *pbVar24;" (type_identifier "byte") (pointer_declarator "*pbVar24" (* "*") (identifier "pbVar24")) (; ";")) (declaration "uint uVar25;" (type_identifier "uint") (identifier "uVar25") (; ";")) (declaration "byte *pbVar26;" (type_identifier "byte") (pointer_declarator "*pbVar26" (* "*") (identifier "pbVar26")) (; ";")) (declaration "byte *pbVar27;" (type_identifier "byte") (pointer_declarator "*pbVar27" (* "*") (identifier "pbVar27")) (; ";")) (declaration "short *psVar28;" (sized_type_specifier "short" (short "short")) (pointer_declarator "*psVar28" (* "*") (identifier "psVar28")) (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "undefined4 *puVar30;" (type_identifier "undefined4") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "code *pcVar32;" (type_identifier "code") (pointer_declarator "*pcVar32" (* "*") (identifier "pcVar32")) (; ";")) (declaration "uint uVar33;" (type_identifier "uint") (identifier "uVar33") (; ";")) (declaration "code *pcVar34;" (type_identifier "code") (pointer_declarator "*pcVar34" (* "*") (identifier "pcVar34")) (; ";")) (declaration "code *unaff_s3;" (type_identifier "code") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3")) (; ";")) (declaration "uint *unaff_s4;" (type_identifier "uint") (pointer_declarator "*unaff_s4" (* "*") (identifier "unaff_s4")) (; ";")) (declaration "uint *unaff_s5;" (type_identifier "uint") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "int iVar35;" (primitive_type "int") (identifier "iVar35") (; ";")) (declaration "code *pcVar36;" (type_identifier "code") (pointer_declarator "*pcVar36" (* "*") (identifier "pcVar36")) (; ";")) (declaration "uint local_100;" (type_identifier "uint") (identifier "local_100") (; ";")) (declaration "code *local_f8;" (type_identifier "code") (pointer_declarator "*local_f8" (* "*") (identifier "local_f8")) (; ";")) (declaration "code *local_f4;" (type_identifier "code") (pointer_declarator "*local_f4" (* "*") (identifier "local_f4")) (; ";")) (declaration "code *local_f0;" (type_identifier "code") (pointer_declarator "*local_f0" (* "*") (identifier "local_f0")) (; ";")) (declaration "uint local_ec;" (type_identifier "uint") (identifier "local_ec") (; ";")) (declaration "code *local_e8;" (type_identifier "code") (pointer_declarator "*local_e8" (* "*") (identifier "local_e8")) (; ";")) (declaration "uint *local_e4;" (type_identifier "uint") (pointer_declarator "*local_e4" (* "*") (identifier "local_e4")) (; ";")) (declaration "code *local_e0;" (type_identifier "code") (pointer_declarator "*local_e0" (* "*") (identifier "local_e0")) (; ";")) (declaration "code *local_dc;" (type_identifier "code") (pointer_declarator "*local_dc" (* "*") (identifier "local_dc")) (; ";")) (declaration "code *local_d8;" (type_identifier "code") (pointer_declarator "*local_d8" (* "*") (identifier "local_d8")) (; ";")) (declaration "code *local_d4;" (type_identifier "code") (pointer_declarator "*local_d4" (* "*") (identifier "local_d4")) (; ";")) (declaration "int local_d0;" (primitive_type "int") (identifier "local_d0") (; ";")) (declaration "code *local_cc;" (type_identifier "code") (pointer_declarator "*local_cc" (* "*") (identifier "local_cc")) (; ";")) (declaration "code *local_c8;" (type_identifier "code") (pointer_declarator "*local_c8" (* "*") (identifier "local_c8")) (; ";")) (declaration "code *local_c4;" (type_identifier "code") (pointer_declarator "*local_c4" (* "*") (identifier "local_c4")) (; ";")) (declaration "code *local_b4;" (type_identifier "code") (pointer_declarator "*local_b4" (* "*") (identifier "local_b4")) (; ";")) (declaration "code *local_b0;" (type_identifier "code") (pointer_declarator "*local_b0" (* "*") (identifier "local_b0")) (; ";")) (declaration "code *local_ac;" (type_identifier "code") (pointer_declarator "*local_ac" (* "*") (identifier "local_ac")) (; ";")) (declaration "uint local_a8;" (type_identifier "uint") (identifier "local_a8") (; ";")) (declaration "int local_a4;" (primitive_type "int") (identifier "local_a4") (; ";")) (declaration "int local_a0;" (primitive_type "int") (identifier "local_a0") (; ";")) (declaration "code *local_9c;" (type_identifier "code") (pointer_declarator "*local_9c" (* "*") (identifier "local_9c")) (; ";")) (declaration "code *local_98;" (type_identifier "code") (pointer_declarator "*local_98" (* "*") (identifier "local_98")) (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "code *local_90;" (type_identifier "code") (pointer_declarator "*local_90" (* "*") (identifier "local_90")) (; ";")) (declaration "code *local_8c;" (type_identifier "code") (pointer_declarator "*local_8c" (* "*") (identifier "local_8c")) (; ";")) (declaration "uint local_88;" (type_identifier "uint") (identifier "local_88") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "uint local_80;" (type_identifier "uint") (identifier "local_80") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "uint *local_78;" (type_identifier "uint") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "uint local_5c;" (type_identifier "uint") (identifier "local_5c") (; ";")) (declaration "uint *local_58;" (type_identifier "uint") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "uint *local_54;" (type_identifier "uint") (pointer_declarator "*local_54" (* "*") (identifier "local_54")) (; ";")) (declaration "int *local_50;" (primitive_type "int") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "code *local_34;" (type_identifier "code") (pointer_declarator "*local_34" (* "*") (identifier "local_34")) (; ";")) (declaration "code *local_30;" (type_identifier "code") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar8 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar8 = PTR___stack_chk_guard_000f5568" (identifier "puVar8") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "local_100 = param_6;" (assignment_expression "local_100 = param_6" (identifier "local_100") (= "=") (identifier "param_6")) (; ";")) (expression_statement "pcVar34 = (code *)param_1[9];" (assignment_expression "pcVar34 = (code *)param_1[9]" (identifier "pcVar34") (= "=") (cast_expression "(code *)param_1[9]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")))) (; ";")) (expression_statement "local_60 = 0;" (assignment_expression "local_60 = 0" (identifier "local_60") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" (identifier "local_58") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000f5568" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (expression_statement "pcVar32 = (code *)*param_1;" (assignment_expression "pcVar32 = (code *)*param_1" (identifier "pcVar32") (= "=") (cast_expression "(code *)*param_1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if ((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" (if "if") (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0))" (( "(") (binary_expression "(pcVar34 == (code *)0x0) &&\n     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)" (( "(") (comma_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0" (assignment_expression "unaff_s3 = (code *)(uint)(byte)pcVar32[0x51]" (identifier "unaff_s3") (= "=") (cast_expression "(code *)(uint)(byte)pcVar32[0x51]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)pcVar32[0x51]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)pcVar32[0x51]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar32[0x51]" (identifier "pcVar32") ([ "[") (number_literal "0x51") (] "]")))))) (, ",") (binary_expression "unaff_s3 == (code *)0x0" (identifier "unaff_s3") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n    unaff_s4 = (uint *)FUN_000b6ddc();\n    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;\n    if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }\n    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);\n    local_e8 = (code *)unaff_s4[3];\n    if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }\n    iVar31 = FUN_000a6004(param_1,unaff_s4);\n    if (iVar31 != 0) goto LAB_000b7424;\n    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);\n    if (local_b0 != (code *)0x0) goto LAB_000b7424;\n    local_d4 = (code *)param_1[10];\n    uVar22 = unaff_s4[9];\n    local_c4 = local_d4 + 1;\n    uVar12 = unaff_s4[2];\n    param_1[10] = (uint)local_c4;\n    local_f0 = local_d4;\n    if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }\n    pcVar23 = local_c4;\n    do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);\n    param_1[10] = (uint)pcVar23;\n    goto LAB_000b7504;\n  }" ({ "{") (expression_statement "unaff_s4 = (uint *)FUN_000b6ddc();" (assignment_expression "unaff_s4 = (uint *)FUN_000b6ddc()" (identifier "unaff_s4") (= "=") (cast_expression "(uint *)FUN_000b6ddc()" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000b6ddc()" (identifier "FUN_000b6ddc") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;" (if "if") (parenthesized_expression "(unaff_s4 == (uint *)0x0)" (( "(") (binary_expression "unaff_s4 == (uint *)0x0" (identifier "unaff_s4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7424;" (goto "goto") (statement_identifier "LAB_000b7424") (; ";"))) (if_statement "if (unaff_s4[0x12] == 0) {\n      local_e0 = (code *)0xffff8000;\n    }\n    else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" (if "if") (parenthesized_expression "(unaff_s4[0x12] == 0)" (( "(") (binary_expression "unaff_s4[0x12] == 0" (subscript_expression "unaff_s4[0x12]" (identifier "unaff_s4") ([ "[") (number_literal "0x12") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_e0 = (code *)0xffff8000;\n    }" ({ "{") (expression_statement "local_e0 = (code *)0xffff8000;" (assignment_expression "local_e0 = (code *)0xffff8000" (identifier "local_e0") (= "=") (cast_expression "(code *)0xffff8000" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffff8000"))) (; ";")) (} "}")) (else_clause "else {\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" (else "else") (compound_statement "{\n      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);\n    }" ({ "{") (expression_statement "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);" (assignment_expression "local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" (identifier "local_e0") (= "=") (cast_expression "(code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x1608))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x1608)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1608)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x1608)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x1608" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x1608")) () ")")))) () ")")) (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))))) (; ";")) (} "}")))) (expression_statement "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64);" (assignment_expression "local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" (identifier "local_e4") (= "=") (cast_expression "(uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))\n                                 (param_1,unaff_s4,0x7f,param_3,&local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x20b0))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x20b0)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x20b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x20b0)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x20b0" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x20b0")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,0x7f,param_3,&local_64)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0x7f") (, ",") (identifier "param_3") (, ",") (pointer_expression "&local_64" (& "&") (identifier "local_64")) () ")"))))) (; ";")) (expression_statement "local_e8 = (code *)unaff_s4[3];" (assignment_expression "local_e8 = (code *)unaff_s4[3]" (identifier "local_e8") (= "=") (cast_expression "(code *)unaff_s4[3]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "unaff_s4[3]" (identifier "unaff_s4") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (1 < *param_2) {\n      pcVar34 = (code *)*param_3;\n    }" (if "if") (parenthesized_expression "(1 < *param_2)" (( "(") (binary_expression "1 < *param_2" (number_literal "1") (< "<") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")")) (compound_statement "{\n      pcVar34 = (code *)*param_3;\n    }" ({ "{") (expression_statement "pcVar34 = (code *)*param_3;" (assignment_expression "pcVar34 = (code *)*param_3" (identifier "pcVar34") (= "=") (cast_expression "(code *)*param_3" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (} "}"))) (expression_statement "iVar31 = FUN_000a6004(param_1,unaff_s4);" (assignment_expression "iVar31 = FUN_000a6004(param_1,unaff_s4)" (identifier "iVar31") (= "=") (call_expression "FUN_000a6004(param_1,unaff_s4)" (identifier "FUN_000a6004") (argument_list "(param_1,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (if_statement "if (iVar31 != 0) goto LAB_000b7424;" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b7424;" (goto "goto") (statement_identifier "LAB_000b7424") (; ";"))) (expression_statement "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);" (assignment_expression "local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" (identifier "local_b0") (= "=") (cast_expression "(code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x45b0))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x45b0)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + -0x45b0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + -0x45b0)" (( "(") (binary_expression "PTR_LAB_000f530c + -0x45b0" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "-0x45b0")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_64)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_64") () ")"))))) (; ";")) (if_statement "if (local_b0 != (code *)0x0) goto LAB_000b7424;" (if "if") (parenthesized_expression "(local_b0 != (code *)0x0)" (( "(") (binary_expression "local_b0 != (code *)0x0" (identifier "local_b0") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7424;" (goto "goto") (statement_identifier "LAB_000b7424") (; ";"))) (expression_statement "local_d4 = (code *)param_1[10];" (assignment_expression "local_d4 = (code *)param_1[10]" (identifier "local_d4") (= "=") (cast_expression "(code *)param_1[10]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_c4 = local_d4 + 1;" (assignment_expression "local_c4 = local_d4 + 1" (identifier "local_c4") (= "=") (binary_expression "local_d4 + 1" (identifier "local_d4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" (identifier "uVar12") (= "=") (subscript_expression "unaff_s4[2]" (identifier "unaff_s4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[10] = (uint)local_c4;" (assignment_expression "param_1[10] = (uint)local_c4" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(uint)local_c4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c4"))) (; ";")) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" (identifier "local_f0") (= "=") (identifier "local_d4")) (; ";")) (if_statement "if ((uVar22 & 0x80) == 0) {\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }\n    else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" (if "if") (parenthesized_expression "((uVar22 & 0x80) == 0)" (( "(") (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" (( "(") (binary_expression "uVar22 & 0x80" (identifier "uVar22") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_ec = 0;\n      if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }\n    }" ({ "{") (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (if_statement "if (uVar12 == 0) {\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_8c = (code *)0x0;\n        goto LAB_000b7504;\n      }" ({ "{") (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" (identifier "local_8c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000b7504;" (goto "goto") (statement_identifier "LAB_000b7504") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" (else "else") (compound_statement "{\n      if (uVar12 == 0) goto LAB_000b82e4;\n      bVar1 = *(byte *)(uVar12 + 0x37);\n      local_ec = uVar12;\n      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }\n    }" ({ "{") (if_statement "if (uVar12 == 0) goto LAB_000b82e4;" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b82e4;" (goto "goto") (statement_identifier "LAB_000b82e4") (; ";"))) (expression_statement "bVar1 = *(byte *)(uVar12 + 0x37);" (assignment_expression "bVar1 = *(byte *)(uVar12 + 0x37)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(uVar12 + 0x37)" (* "*") (cast_expression "(byte *)(uVar12 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x37)" (( "(") (binary_expression "uVar12 + 0x37" (identifier "uVar12") (+ "+") (number_literal "0x37")) () ")"))))) (; ";")) (expression_statement "local_ec = uVar12;" (assignment_expression "local_ec = uVar12" (identifier "local_ec") (= "=") (identifier "uVar12")) (; ";")) (while_statement "while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" (while "while") (parenthesized_expression "(((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)))" (( "(") (parenthesized_expression "((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))" (( "(") (binary_expression "(bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" (binary_expression "(bVar1 & 0xc0) != 0x80" (parenthesized_expression "(bVar1 & 0xc0)" (( "(") (binary_expression "bVar1 & 0xc0" (identifier "bVar1") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0x80")) (&& "&&") (parenthesized_expression "(local_ec = *(uint *)(local_ec + 0x14), local_ec != 0)" (( "(") (comma_expression "local_ec = *(uint *)(local_ec + 0x14), local_ec != 0" (assignment_expression "local_ec = *(uint *)(local_ec + 0x14)" (identifier "local_ec") (= "=") (pointer_expression "*(uint *)(local_ec + 0x14)" (* "*") (cast_expression "(uint *)(local_ec + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + 0x14)" (( "(") (binary_expression "local_ec + 0x14" (identifier "local_ec") (+ "+") (number_literal "0x14")) () ")"))))) (, ",") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")")) (compound_statement "{\n        bVar1 = *(byte *)(local_ec + 0x37);\n      }" ({ "{") (expression_statement "bVar1 = *(byte *)(local_ec + 0x37);" (assignment_expression "bVar1 = *(byte *)(local_ec + 0x37)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(local_ec + 0x37)" (* "*") (cast_expression "(byte *)(local_ec + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + 0x37)" (( "(") (binary_expression "local_ec + 0x37" (identifier "local_ec") (+ "+") (number_literal "0x37")) () ")"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar23 = local_c4;" (assignment_expression "pcVar23 = local_c4" (identifier "pcVar23") (= "=") (identifier "local_c4")) (; ";")) (do_statement "do {\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    } while (*puVar17 != 0);" (do "do") (compound_statement "{\n      puVar17 = (uint *)(uVar12 + 0x14);\n      if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }\n      pcVar23 = pcVar23 + 1;\n      local_8c = pcVar23 + ~(uint)local_d4;\n      uVar12 = *puVar17;\n    }" ({ "{") (expression_statement "puVar17 = (uint *)(uVar12 + 0x14);" (assignment_expression "puVar17 = (uint *)(uVar12 + 0x14)" (identifier "puVar17") (= "=") (cast_expression "(uint *)(uVar12 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x14)" (( "(") (binary_expression "uVar12 + 0x14" (identifier "uVar12") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (if_statement "if (uVar12 == local_ec) {\n        local_f0 = pcVar23;\n      }" (if "if") (parenthesized_expression "(uVar12 == local_ec)" (( "(") (binary_expression "uVar12 == local_ec" (identifier "uVar12") (== "==") (identifier "local_ec")) () ")")) (compound_statement "{\n        local_f0 = pcVar23;\n      }" ({ "{") (expression_statement "local_f0 = pcVar23;" (assignment_expression "local_f0 = pcVar23" (identifier "local_f0") (= "=") (identifier "pcVar23")) (; ";")) (} "}"))) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_8c = pcVar23 + ~(uint)local_d4;" (assignment_expression "local_8c = pcVar23 + ~(uint)local_d4" (identifier "local_8c") (= "=") (binary_expression "pcVar23 + ~(uint)local_d4" (identifier "pcVar23") (+ "+") (unary_expression "~(uint)local_d4" (~ "~") (cast_expression "(uint)local_d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d4"))))) (; ";")) (expression_statement "uVar12 = *puVar17;" (assignment_expression "uVar12 = *puVar17" (identifier "uVar12") (= "=") (pointer_expression "*puVar17" (* "*") (identifier "puVar17"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*puVar17 != 0)" (( "(") (binary_expression "*puVar17 != 0" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "param_1[10] = (uint)pcVar23;" (assignment_expression "param_1[10] = (uint)pcVar23" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(uint)pcVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar23"))) (; ";")) (goto_statement "goto LAB_000b7504;" (goto "goto") (statement_identifier "LAB_000b7504") (; ";")) (} "}"))) (do_statement "do {\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  } while( true );" (do "do") (compound_statement "{\n    while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }\n    pcVar23 = local_8c + 1;\n    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));\n    puVar10 = puVar17 + (int)pcVar23;\n    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;\n    sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n    if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }\n    local_f8 = (code *)param_1[2];\n    local_48 = 0;\n    local_4c = local_100;\n    local_44 = 0;\n    local_40 = 0;\n    local_38 = 0;\n    local_3c = 0x200;\n    local_54 = param_1;\n    local_50 = param_2;\n    if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }\nLAB_000b7aa8:\n    puVar17 = local_58;\n    if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }\n    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);\n    unaff_s4 = puVar20;\n    unaff_s5 = param_1;\n  }" ({ "{") (while_statement "while( true ) {\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      param_1 = unaff_s5;\n      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);\n      if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }\n      if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }\n      if (local_2c == *(int *)puVar8) {\n        return;\n      }\n      (*(code *)PTR___stack_chk_fail_000f5540)();\nLAB_000b82e4:\n      local_ec = 0;\n      local_8c = (code *)0x0;\n      local_f0 = local_d4;\nLAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }\n      puVar19 = PTR_LAB_000f52ec;\n      param_2[0xc] = (int)local_f0;\n      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);\n      if (piVar9 != (int *)0x0) break;\nLAB_000b7424:\n      puVar17 = local_58;\n      unaff_s5 = param_1;\n      if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }\n    }" ({ "{") (expression_statement "param_1 = unaff_s5;" (assignment_expression "param_1 = unaff_s5" (identifier "param_1") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x35c8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x35c8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x35c8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x35c8)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x35c8" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x35c8")) () ")")))) () ")")) (argument_list "(pcVar32,param_2)" (( "(") (identifier "pcVar32") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (param_3 != (uint *)0x0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" (if "if") (parenthesized_expression "(param_3 != (uint *)0x0)" (( "(") (binary_expression "param_3 != (uint *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);\n      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x3aa4" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x3aa4")) () ")")))) () ")")) (argument_list "(pcVar32,param_3)" (( "(") (identifier "pcVar32") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);\n      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3940))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3940)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x3940)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x3940)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x3940" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x3940")) () ")")))) () ")")) (argument_list "(pcVar32,param_4)" (( "(") (identifier "pcVar32") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_2c == *(int *)puVar8) {\n        return;\n      }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar8)" (( "(") (binary_expression "local_2c == *(int *)puVar8" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar8" (* "*") (cast_expression "(int *)puVar8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8")))) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_000b82e4:\n      local_ec = 0;" (statement_identifier "LAB_000b82e4") (: ":") (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";"))) (expression_statement "local_8c = (code *)0x0;" (assignment_expression "local_8c = (code *)0x0" (identifier "local_8c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_f0 = local_d4;" (assignment_expression "local_f0 = local_d4" (identifier "local_f0") (= "=") (identifier "local_d4")) (; ";")) (labeled_statement "LAB_000b7504:\n      if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" (statement_identifier "LAB_000b7504") (: ":") (if_statement "if (local_100 != 0) {\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" (if "if") (parenthesized_expression "(local_100 != 0)" (( "(") (binary_expression "local_100 != 0" (identifier "local_100") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        local_f0 = *(code **)(local_100 + 0x1c);\n        local_c4 = *(code **)(local_100 + 0x20);\n        param_1[10] = (uint)local_d4;\n      }" ({ "{") (expression_statement "local_f0 = *(code **)(local_100 + 0x1c);" (assignment_expression "local_f0 = *(code **)(local_100 + 0x1c)" (identifier "local_f0") (= "=") (pointer_expression "*(code **)(local_100 + 0x1c)" (* "*") (cast_expression "(code **)(local_100 + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_100 + 0x1c)" (( "(") (binary_expression "local_100 + 0x1c" (identifier "local_100") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "local_c4 = *(code **)(local_100 + 0x20);" (assignment_expression "local_c4 = *(code **)(local_100 + 0x20)" (identifier "local_c4") (= "=") (pointer_expression "*(code **)(local_100 + 0x20)" (* "*") (cast_expression "(code **)(local_100 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_100 + 0x20)" (( "(") (binary_expression "local_100 + 0x20" (identifier "local_100") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "param_1[10] = (uint)local_d4;" (assignment_expression "param_1[10] = (uint)local_d4" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (cast_expression "(uint)local_d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d4"))) (; ";")) (} "}")))) (expression_statement "puVar19 = PTR_LAB_000f52ec;" (assignment_expression "puVar19 = PTR_LAB_000f52ec" (identifier "puVar19") (= "=") (identifier "PTR_LAB_000f52ec")) (; ";")) (expression_statement "param_2[0xc] = (int)local_f0;" (assignment_expression "param_2[0xc] = (int)local_f0" (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")) (= "=") (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0"))) (; ";")) (expression_statement "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);" (assignment_expression "piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" (identifier "piVar9") (= "=") (cast_expression "(int *)(*(code *)(puVar19 + 0x6c00))(pcVar32)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(puVar19 + 0x6c00))(pcVar32)" (parenthesized_expression "(*(code *)(puVar19 + 0x6c00))" (( "(") (pointer_expression "*(code *)(puVar19 + 0x6c00)" (* "*") (cast_expression "(code *)(puVar19 + 0x6c00)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x6c00)" (( "(") (binary_expression "puVar19 + 0x6c00" (identifier "puVar19") (+ "+") (number_literal "0x6c00")) () ")")))) () ")")) (argument_list "(pcVar32)" (( "(") (identifier "pcVar32") () ")"))))) (; ";")) (if_statement "if (piVar9 != (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar9 != (int *)0x0)" (( "(") (binary_expression "piVar9 != (int *)0x0" (identifier "piVar9") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000b7424:\n      puVar17 = local_58;" (statement_identifier "LAB_000b7424") (: ":") (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" (identifier "puVar17") (= "=") (identifier "local_58")) (; ";"))) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (local_58 != (uint *)0x0) {\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" (if "if") (parenthesized_expression "(local_58 != (uint *)0x0)" (( "(") (binary_expression "local_58 != (uint *)0x0" (identifier "local_58") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_58 = (uint *)0x0;\n        puVar17[0x3d] = local_5c;\n      }" ({ "{") (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" (identifier "local_58") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" (identifier "puVar17") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar23 = local_8c + 1;" (assignment_expression "pcVar23 = local_8c + 1" (identifier "pcVar23") (= "=") (binary_expression "local_8c + 1" (identifier "local_8c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));" (assignment_expression "puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" (identifier "puVar17") (= "=") (cast_expression "(uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar9 + *(short *)((int)unaff_s4 + 0x2a))" (( "(") (binary_expression "piVar9 + *(short *)((int)unaff_s4 + 0x2a)" (identifier "piVar9") (+ "+") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")))) (; ";")) (expression_statement "puVar10 = puVar17 + (int)pcVar23;" (assignment_expression "puVar10 = puVar17 + (int)pcVar23" (identifier "puVar10") (= "=") (binary_expression "puVar17 + (int)pcVar23" (identifier "puVar17") (+ "+") (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23")))) (; ";")) (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" (( "(") (pointer_expression "*(code *)PTR_memset_000f5450" (* "*") (cast_expression "(code *)PTR_memset_000f5450" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_000f5450"))) () ")")) (argument_list "(puVar10,1,pcVar23)" (( "(") (identifier "puVar10") (, ",") (number_literal "1") (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;" (assignment_expression "*(code *)((int)puVar10 + (int)pcVar23) = (code)0x0" (pointer_expression "*(code *)((int)puVar10 + (int)pcVar23)" (* "*") (cast_expression "(code *)((int)puVar10 + (int)pcVar23)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + (int)pcVar23)" (( "(") (binary_expression "(int)puVar10 + (int)pcVar23" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (cast_expression "(int)pcVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar23"))) () ")")))) (= "=") (cast_expression "(code)0x0" (( "(") (type_descriptor "code" (type_identifier "code")) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" (identifier "sVar3") (= "=") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (if_statement "if (0 < sVar3) {\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" (if "if") (parenthesized_expression "(0 < sVar3)" (( "(") (binary_expression "0 < sVar3" (number_literal "0") (< "<") (identifier "sVar3")) () ")")) (compound_statement "{\n      piVar11 = piVar9;\n      do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);\n    }" ({ "{") (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" (identifier "piVar11") (= "=") (identifier "piVar9")) (; ";")) (do_statement "do {\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      } while (piVar9 + sVar3 != piVar11);" (do "do") (compound_statement "{\n        *piVar11 = -1;\n        piVar11 = piVar11 + 1;\n      }" ({ "{") (expression_statement "*piVar11 = -1;" (assignment_expression "*piVar11 = -1" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar9 + sVar3 != piVar11)" (( "(") (binary_expression "piVar9 + sVar3 != piVar11" (binary_expression "piVar9 + sVar3" (identifier "piVar9") (+ "+") (identifier "sVar3")) (!= "!=") (identifier "piVar11")) () ")")) (; ";")) (} "}"))) (expression_statement "local_f8 = (code *)param_1[2];" (assignment_expression "local_f8 = (code *)param_1[2]" (identifier "local_f8") (= "=") (cast_expression "(code *)param_1[2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = local_100;" (assignment_expression "local_4c = local_100" (identifier "local_4c") (= "=") (identifier "local_100")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0x200;" (assignment_expression "local_3c = 0x200" (identifier "local_3c") (= "=") (number_literal "0x200")) (; ";")) (expression_statement "local_54 = param_1;" (assignment_expression "local_54 = param_1" (identifier "local_54") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_50 = param_2;" (assignment_expression "local_50 = param_2" (identifier "local_50") (= "=") (identifier "param_2")) (; ";")) (if_statement "if (local_f8 == (code *)0x0) {\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }\n    else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_f8 == (code *)0x0)" (( "(") (binary_expression "local_f8 == (code *)0x0" (identifier "local_f8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);\n      puVar20 = unaff_s4;\n      if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }\n    }" ({ "{") (expression_statement "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);" (assignment_expression "local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" (identifier "local_f8") (= "=") (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x42ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x42ac)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x42ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x42ac)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x42ac" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x42ac")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (local_f8 != (code *)0x0) {\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" (if "if") (parenthesized_expression "(local_f8 != (code *)0x0)" (( "(") (binary_expression "local_f8 != (code *)0x0" (identifier "local_f8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        uVar12 = *param_3;\n        goto LAB_000b7624;\n      }" ({ "{") (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" (identifier "uVar12") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (goto_statement "goto LAB_000b7624;" (goto "goto") (statement_identifier "LAB_000b7624") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" (else "else") (compound_statement "{\n      uVar12 = *param_3;\nLAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;\n      puVar6 = PTR_DAT_000f52d4;\n      puVar19 = PTR_LAB_000f52cc;\n      local_d8 = unaff_s3;\n      if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }\n      uVar12 = (uint)(local_d8 + local_84) & 0xff;\n      if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }\n      uVar22 = unaff_s4[0xe];\n      uVar25 = *param_1;\n      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);\n      param_2[0x10] = -(uint)(uVar22 != 0);\n      param_2[0x11] = -(uint)(uVar22 != 0);\n      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);\n      if (param_5 == 5) {\n        local_60 = 1;\n      }\n      uVar22 = unaff_s4[2];\n      local_78 = puVar17;\n      if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }\n      uVar22 = param_1[0xb];\n      param_1[0xb] = uVar22 + 1;\n      *local_78 = uVar22 + 1;\n      if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }\n      if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }\n      (*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);\n      uVar22 = unaff_s4[0xe];\n      if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }\n      unaff_s3 = local_d8;\n      if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }\n      if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }\n    }" ({ "{") (expression_statement "uVar12 = *param_3;" (assignment_expression "uVar12 = *param_3" (identifier "uVar12") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (labeled_statement "LAB_000b7624:\n      puVar7 = PTR_LAB_000f530c;" (statement_identifier "LAB_000b7624") (: ":") (expression_statement "puVar7 = PTR_LAB_000f530c;" (assignment_expression "puVar7 = PTR_LAB_000f530c" (identifier "puVar7") (= "=") (identifier "PTR_LAB_000f530c")) (; ";"))) (expression_statement "puVar6 = PTR_DAT_000f52d4;" (assignment_expression "puVar6 = PTR_DAT_000f52d4" (identifier "puVar6") (= "=") (identifier "PTR_DAT_000f52d4")) (; ";")) (expression_statement "puVar19 = PTR_LAB_000f52cc;" (assignment_expression "puVar19 = PTR_LAB_000f52cc" (identifier "puVar19") (= "=") (identifier "PTR_LAB_000f52cc")) (; ";")) (expression_statement "local_d8 = unaff_s3;" (assignment_expression "local_d8 = unaff_s3" (identifier "local_d8") (= "=") (identifier "unaff_s3")) (; ";")) (if_statement "if ((int)uVar12 < 1) {\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }\n      else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" (if "if") (parenthesized_expression "((int)uVar12 < 1)" (( "(") (binary_expression "(int)uVar12 < 1" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n      }" ({ "{") (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" (identifier "local_b4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" (identifier "local_ac") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" (else "else") (compound_statement "{\n        puVar20 = param_3 + 1;\n        local_84 = 0;\n        local_b4 = (code *)0x0;\n        local_ac = (code *)0xffffffff;\n        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);\n        pcVar36 = (code *)0x0;\n        do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);\n      }" ({ "{") (expression_statement "puVar20 = param_3 + 1;" (assignment_expression "puVar20 = param_3 + 1" (identifier "puVar20") (= "=") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_84 = 0;" (assignment_expression "local_84 = 0" (identifier "local_84") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_b4 = (code *)0x0;" (assignment_expression "local_b4 = (code *)0x0" (identifier "local_b4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_ac = (code *)0xffffffff;" (assignment_expression "local_ac = (code *)0xffffffff" (identifier "local_ac") (= "=") (cast_expression "(code *)0xffffffff" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x514)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x514)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x514" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x514")) () ")")))) (; ";")) (expression_statement "pcVar36 = (code *)0x0;" (assignment_expression "pcVar36 = (code *)0x0" (identifier "pcVar36") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (do_statement "do {\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        } while ((int)(unaff_s3 + 1) < (int)*param_3);" (do "do") (compound_statement "{\n          unaff_s3 = pcVar36;\n          if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;\n          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          pbVar29 = (byte *)puVar20[1];\n          if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }\nLAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }\n          local_b4 = (code *)*puVar20;\n          iVar35 = -1;\n          uVar12 = *unaff_s4;\n          local_d8 = (code *)0x1;\n          pbVar27 = puVar19 + 0x7028;\n          local_ac = unaff_s3;\nLAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));\n          if (iVar31 == 1) goto LAB_000b7aa8;\n          if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }\n          puVar20 = puVar20 + 4;\n          pcVar36 = unaff_s3 + 1;\n        }" ({ "{") (expression_statement "unaff_s3 = pcVar36;" (assignment_expression "unaff_s3 = pcVar36" (identifier "unaff_s3") (= "=") (identifier "pcVar36")) (; ";")) (if_statement "if ((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))\n          goto LAB_000b7aa8;" (if "if") (parenthesized_expression "((pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))" (( "(") (binary_expression "(pcVar34 == (code *)0x0) &&\n             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0)" (( "(") (comma_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0" (assignment_expression "iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" (identifier "iVar31") (= "=") (call_expression "(*(code *)(puVar7 + -0x562c))(&local_54,*puVar20)" (parenthesized_expression "(*(code *)(puVar7 + -0x562c))" (( "(") (pointer_expression "*(code *)(puVar7 + -0x562c)" (* "*") (cast_expression "(code *)(puVar7 + -0x562c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar7 + -0x562c)" (( "(") (binary_expression "puVar7 + -0x562c" (identifier "puVar7") (+ "+") (number_literal "-0x562c")) () ")")))) () ")")) (argument_list "(&local_54,*puVar20)" (( "(") (pointer_expression "&local_54" (& "&") (identifier "local_54")) (, ",") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) () ")")))) (, ",") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";"))) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar31") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "pbVar29 = (byte *)puVar20[1];" (assignment_expression "pbVar29 = (byte *)puVar20[1]" (identifier "pbVar29") (= "=") (cast_expression "(byte *)puVar20[1]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar20[1]" (identifier "puVar20") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (0 < iVar31) {\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" (if "if") (parenthesized_expression "(0 < iVar31)" (( "(") (binary_expression "0 < iVar31" (number_literal "0") (< "<") (identifier "iVar31")) () ")")) (compound_statement "{\n            puVar30 = (undefined4 *)unaff_s4[1];\n            iVar35 = 0;\n            do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);\n          }" ({ "{") (expression_statement "puVar30 = (undefined4 *)unaff_s4[1];" (assignment_expression "puVar30 = (undefined4 *)unaff_s4[1]" (identifier "puVar30") (= "=") (cast_expression "(undefined4 *)unaff_s4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            } while (iVar35 != iVar31);" (do "do") (compound_statement "{\n              pbVar27 = (byte *)*puVar30;\n              uVar22 = (uint)*pbVar29;\n              uVar12 = (uint)*pbVar27;\n              pbVar24 = pbVar27;\n              pbVar26 = pbVar29;\n              if (uVar12 == uVar22) goto LAB_000b76e8;\n              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }\n              iVar35 = iVar35 + 1;\n              puVar30 = puVar30 + 5;\n            }" ({ "{") (expression_statement "pbVar27 = (byte *)*puVar30;" (assignment_expression "pbVar27 = (byte *)*puVar30" (identifier "pbVar27") (= "=") (cast_expression "(byte *)*puVar30" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar30" (* "*") (identifier "puVar30")))) (; ";")) (expression_statement "uVar22 = (uint)*pbVar29;" (assignment_expression "uVar22 = (uint)*pbVar29" (identifier "uVar22") (= "=") (binary_expression "(uint)*pbVar29" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar29"))) (; ";")) (expression_statement "uVar12 = (uint)*pbVar27;" (assignment_expression "uVar12 = (uint)*pbVar27" (identifier "uVar12") (= "=") (binary_expression "(uint)*pbVar27" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar27"))) (; ";")) (expression_statement "pbVar24 = pbVar27;" (assignment_expression "pbVar24 = pbVar27" (identifier "pbVar24") (= "=") (identifier "pbVar27")) (; ";")) (expression_statement "pbVar26 = pbVar29;" (assignment_expression "pbVar26 = pbVar29" (identifier "pbVar26") (= "=") (identifier "pbVar29")) (; ";")) (if_statement "if (uVar12 == uVar22) goto LAB_000b76e8;" (if "if") (parenthesized_expression "(uVar12 == uVar22)" (( "(") (binary_expression "uVar12 == uVar22" (identifier "uVar12") (== "==") (identifier "uVar22")) () ")")) (goto_statement "goto LAB_000b76e8;" (goto "goto") (statement_identifier "LAB_000b76e8") (; ";"))) (while_statement "while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" (while "while") (parenthesized_expression "(puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac])" (( "(") (binary_expression "puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]" (subscript_expression "puVar6[uVar12 + 0x25ac]" (identifier "puVar6") ([ "[") (binary_expression "uVar12 + 0x25ac" (identifier "uVar12") (+ "+") (number_literal "0x25ac")) (] "]")) (== "==") (subscript_expression "puVar6[uVar22 + 0x25ac]" (identifier "puVar6") ([ "[") (binary_expression "uVar22 + 0x25ac" (identifier "uVar22") (+ "+") (number_literal "0x25ac")) (] "]"))) () ")")) (compound_statement "{\n                while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }\n              }" ({ "{") (while_statement "while( true ) {\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                  pbVar24 = pbVar24 + 1;\n                  uVar22 = (uint)pbVar26[1];\n                  uVar12 = (uint)*pbVar24;\n                  pbVar26 = pbVar26 + 1;\n                  if (uVar12 != uVar22) break;\nLAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }\n                }" ({ "{") (expression_statement "pbVar24 = pbVar24 + 1;" (assignment_expression "pbVar24 = pbVar24 + 1" (identifier "pbVar24") (= "=") (binary_expression "pbVar24 + 1" (identifier "pbVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar22 = (uint)pbVar26[1];" (assignment_expression "uVar22 = (uint)pbVar26[1]" (identifier "uVar22") (= "=") (cast_expression "(uint)pbVar26[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar26[1]" (identifier "pbVar26") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar12 = (uint)*pbVar24;" (assignment_expression "uVar12 = (uint)*pbVar24" (identifier "uVar12") (= "=") (binary_expression "(uint)*pbVar24" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pbVar24"))) (; ";")) (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" (identifier "pbVar26") (= "=") (binary_expression "pbVar26 + 1" (identifier "pbVar26") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar12 != uVar22) break;" (if "if") (parenthesized_expression "(uVar12 != uVar22)" (( "(") (binary_expression "uVar12 != uVar22" (identifier "uVar12") (!= "!=") (identifier "uVar22")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_000b76e8:\n                  if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" (statement_identifier "LAB_000b76e8") (: ":") (if_statement "if (uVar12 == 0) {\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }\n                    piVar9[iVar35] = (int)unaff_s3;\n                    if (iVar31 <= iVar35) goto LAB_000b7748;\n                    uVar12 = *unaff_s4;\n                    goto LAB_000b7790;\n                  }" ({ "{") (if_statement "if (*(short *)(unaff_s4 + 10) == iVar35) {\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }\n                    else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" (if "if") (parenthesized_expression "(*(short *)(unaff_s4 + 10) == iVar35)" (( "(") (binary_expression "*(short *)(unaff_s4 + 10) == iVar35" (pointer_expression "*(short *)(unaff_s4 + 10)" (* "*") (cast_expression "(short *)(unaff_s4 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4 + 10)" (( "(") (binary_expression "unaff_s4 + 10" (identifier "unaff_s4") (+ "+") (number_literal "10")) () ")")))) (== "==") (identifier "iVar35")) () ")")) (compound_statement "{\n                      local_b4 = (code *)*puVar20;\n                      local_d8 = (code *)0x1;\n                      local_ac = unaff_s3;\n                    }" ({ "{") (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" (identifier "local_b4") (= "=") (cast_expression "(code *)*puVar20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";")) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" (identifier "local_d8") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" (identifier "local_ac") (= "=") (identifier "unaff_s3")) (; ";")) (} "}")) (else_clause "else {\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" (else "else") (compound_statement "{\n                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }\n                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }\n                    }" ({ "{") (if_statement "if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" (if "if") (parenthesized_expression "((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0))" (( "(") (binary_expression "(local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)" (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(puVar30 + 4) & 1) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 1)" (( "(") (binary_expression "*(ushort *)(puVar30 + 4) & 1" (pointer_expression "*(ushort *)(puVar30 + 4)" (* "*") (cast_expression "(ushort *)(puVar30 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 4)" (( "(") (binary_expression "puVar30 + 4" (identifier "puVar30") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                        piVar9[iVar35] = (int)unaff_s3;\n                        if (iVar31 <= iVar35) goto LAB_000b7e5c;\n                        uVar12 = *unaff_s4;\n                        local_84 = 1;\n                        goto LAB_000b7790;\n                      }" ({ "{") (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" (identifier "piVar9") ([ "[") (identifier "iVar35") (] "]")) (= "=") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) (; ";")) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7e5c;" (if "if") (parenthesized_expression "(iVar31 <= iVar35)" (( "(") (binary_expression "iVar31 <= iVar35" (identifier "iVar31") (<= "<=") (identifier "iVar35")) () ")")) (goto_statement "goto LAB_000b7e5c;" (goto "goto") (statement_identifier "LAB_000b7e5c") (; ";"))) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" (identifier "uVar12") (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (expression_statement "local_84 = 1;" (assignment_expression "local_84 = 1" (identifier "local_84") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000b7790;" (goto "goto") (statement_identifier "LAB_000b7790") (; ";")) (} "}"))) (if_statement "if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" (if "if") (parenthesized_expression "((*(ushort *)(puVar30 + 4) & 0x60) != 0)" (( "(") (binary_expression "(*(ushort *)(puVar30 + 4) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(puVar30 + 4) & 0x60)" (( "(") (binary_expression "*(ushort *)(puVar30 + 4) & 0x60" (pointer_expression "*(ushort *)(puVar30 + 4)" (* "*") (cast_expression "(ushort *)(puVar30 + 4)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar30 + 4)" (( "(") (binary_expression "puVar30 + 4" (identifier "puVar30") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        (*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);\n                        goto LAB_000b7aa8;\n                      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))\n                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" (( "(") (binary_expression "PTR_LAB_000f530c + -0x61d8" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "-0x61d8")) () ")")))) () ")")) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_000f52d4 + -0x6824" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x6824")) (, ",") (identifier "pbVar27") () ")"))) (; ";")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar9[iVar35] = (int)unaff_s3;" (assignment_expression "piVar9[iVar35] = (int)unaff_s3" (subscript_expression "piVar9[iVar35]" (identifier "piVar9") ([ "[") (identifier "iVar35") (] "]")) (= "=") (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3"))) (; ";")) (if_statement "if (iVar31 <= iVar35) goto LAB_000b7748;" (if "if") (parenthesized_expression "(iVar31 <= iVar35)" (( "(") (binary_expression "iVar31 <= iVar35" (identifier "iVar31") (<= "<=") (identifier "iVar35")) () ")")) (goto_statement "goto LAB_000b7748;" (goto "goto") (statement_identifier "LAB_000b7748") (; ";"))) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" (identifier "uVar12") (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (goto_statement "goto LAB_000b7790;" (goto "goto") (statement_identifier "LAB_000b7790") (; ";")) (} "}")))) (} "}"))) (} "}"))) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar30 = puVar30 + 5;" (assignment_expression "puVar30 = puVar30 + 5" (identifier "puVar30") (= "=") (binary_expression "puVar30 + 5" (identifier "puVar30") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 != iVar31)" (( "(") (binary_expression "iVar35 != iVar31" (identifier "iVar35") (!= "!=") (identifier "iVar31")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000b7748:\n          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" (statement_identifier "LAB_000b7748") (: ":") (if_statement "if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" (if "if") (parenthesized_expression "((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0))" (( "(") (binary_expression "(local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" (parenthesized_expression "(local_ec != 0)" (( "(") (binary_expression "local_ec != 0" (identifier "local_ec") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)" (( "(") (comma_expression "iVar31 = (*pcVar13)(pbVar29), iVar31 == 0" (assignment_expression "iVar31 = (*pcVar13)(pbVar29)" (identifier "iVar31") (= "=") (call_expression "(*pcVar13)(pbVar29)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(pbVar29)" (( "(") (identifier "pbVar29") () ")")))) (, ",") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);\n            *(undefined1 *)((int)param_1 + 0x11) = 1;\n            goto LAB_000b7aa8;\n          }" ({ "{") (labeled_statement "LAB_000b7e5c:\n            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" (statement_identifier "LAB_000b7e5c") (: ":") (expression_statement "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);" (call_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x61d8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x61d8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + -0x61d8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + -0x61d8)" (( "(") (binary_expression "PTR_LAB_000f530c + -0x61d8" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "-0x61d8")) () ")")))) () ")")) (argument_list "(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_DAT_000f52d4 + -0x6800" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x6800")) (, ",") (identifier "pbVar29") () ")"))) (; ";"))) (expression_statement "*(undefined1 *)((int)param_1 + 0x11) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x11) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x11)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x11)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x11)" (( "(") (binary_expression "(int)param_1 + 0x11" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x11")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";")) (} "}")))) (expression_statement "local_b4 = (code *)*puVar20;" (assignment_expression "local_b4 = (code *)*puVar20" (identifier "local_b4") (= "=") (cast_expression "(code *)*puVar20" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar20" (* "*") (identifier "puVar20")))) (; ";")) (expression_statement "iVar35 = -1;" (assignment_expression "iVar35 = -1" (identifier "iVar35") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar12 = *unaff_s4;" (assignment_expression "uVar12 = *unaff_s4" (identifier "uVar12") (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (expression_statement "local_d8 = (code *)0x1;" (assignment_expression "local_d8 = (code *)0x1" (identifier "local_d8") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pbVar27 = puVar19 + 0x7028;" (assignment_expression "pbVar27 = puVar19 + 0x7028" (identifier "pbVar27") (= "=") (binary_expression "puVar19 + 0x7028" (identifier "puVar19") (+ "+") (number_literal "0x7028"))) (; ";")) (expression_statement "local_ac = unaff_s3;" (assignment_expression "local_ac = unaff_s3" (identifier "local_ac") (= "=") (identifier "unaff_s3")) (; ";")) (labeled_statement "LAB_000b7790:\n          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" (statement_identifier "LAB_000b7790") (: ":") (expression_statement "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));" (assignment_expression "iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" (identifier "iVar31") (= "=") (call_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))\n                             (param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x5ce4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x5ce4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + -0x5ce4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + -0x5ce4)" (( "(") (binary_expression "PTR_LAB_000f530c + -0x5ce4" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "-0x5ce4")) () ")")))) () ")")) (argument_list "(param_1,0x17,uVar12,pbVar27,\n                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10))" (( "(") (identifier "param_1") (, ",") (number_literal "0x17") (, ",") (identifier "uVar12") (, ",") (identifier "pbVar27") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10)" (( "(") (binary_expression "*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10" (pointer_expression "*(int *)(pcVar32 + 0x10)" (* "*") (cast_expression "(int *)(pcVar32 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x10)" (( "(") (binary_expression "pcVar32 + 0x10" (identifier "pcVar32") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "(int)local_e0 * 0x10" (cast_expression "(int)local_e0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_e0")) (* "*") (number_literal "0x10"))) () ")")))) () ")")))) (; ";"))) (if_statement "if (iVar31 == 1) goto LAB_000b7aa8;" (if "if") (parenthesized_expression "(iVar31 == 1)" (( "(") (binary_expression "iVar31 == 1" (identifier "iVar31") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";"))) (if_statement "if (iVar31 == 2) {\n            piVar9[iVar35] = -1;\n          }" (if "if") (parenthesized_expression "(iVar31 == 2)" (( "(") (binary_expression "iVar31 == 2" (identifier "iVar31") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n            piVar9[iVar35] = -1;\n          }" ({ "{") (expression_statement "piVar9[iVar35] = -1;" (assignment_expression "piVar9[iVar35] = -1" (subscript_expression "piVar9[iVar35]" (identifier "piVar9") ([ "[") (identifier "iVar35") (] "]")) (= "=") (number_literal "-1")) (; ";")) (} "}"))) (expression_statement "puVar20 = puVar20 + 4;" (assignment_expression "puVar20 = puVar20 + 4" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 4" (identifier "puVar20") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pcVar36 = unaff_s3 + 1;" (assignment_expression "pcVar36 = unaff_s3 + 1" (identifier "pcVar36") (= "=") (binary_expression "unaff_s3 + 1" (identifier "unaff_s3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)(unaff_s3 + 1) < (int)*param_3)" (( "(") (binary_expression "(int)(unaff_s3 + 1) < (int)*param_3" (cast_expression "(int)(unaff_s3 + 1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(unaff_s3 + 1)" (( "(") (binary_expression "unaff_s3 + 1" (identifier "unaff_s3") (+ "+") (number_literal "1")) () ")"))) (< "<") (cast_expression "(int)*param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) () ")")) (; ";")) (} "}")))) (expression_statement "uVar12 = (uint)(local_d8 + local_84) & 0xff;" (assignment_expression "uVar12 = (uint)(local_d8 + local_84) & 0xff" (identifier "uVar12") (= "=") (binary_expression "(uint)(local_d8 + local_84) & 0xff" (call_expression "(uint)(local_d8 + local_84)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_d8 + local_84)" (( "(") (binary_expression "local_d8 + local_84" (identifier "local_d8") (+ "+") (identifier "local_84")) () ")"))) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" (if "if") (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" (( "(") (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);\n      }" ({ "{") (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar31") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x71c" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x71c")) () ")")))) (; ";")) (do_statement "do {\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        } while (bVar5);" (do "do") (compound_statement "{\n          if (iVar31 < 1) break;\n          bVar5 = false;\n          iVar35 = 0;\n          piVar11 = piVar9;\n          do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);\n        }" ({ "{") (if_statement "if (iVar31 < 1) break;" (if "if") (parenthesized_expression "(iVar31 < 1)" (( "(") (binary_expression "iVar31 < 1" (identifier "iVar31") (< "<") (number_literal "1")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "bVar5 = false;" (assignment_expression "bVar5 = false" (identifier "bVar5") (= "=") (false "false")) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" (identifier "piVar11") (= "=") (identifier "piVar9")) (; ";")) (do_statement "do {\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          } while (iVar35 < iVar31);" (do "do") (compound_statement "{\n            if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }\n            iVar35 = iVar35 + 1;\n            piVar11 = piVar11 + 1;\n          }" ({ "{") (if_statement "if ((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" (if "if") (parenthesized_expression "((*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0))" (( "(") (binary_expression "(*piVar11 < 0) &&\n               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" (parenthesized_expression "(*piVar11 < 0)" (( "(") (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)" (( "(") (comma_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (assignment_expression "iVar14 = unaff_s4[1] + iVar35 * 0x14" (identifier "iVar14") (= "=") (binary_expression "unaff_s4[1] + iVar35 * 0x14" (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "iVar35 * 0x14" (identifier "iVar35") (* "*") (number_literal "0x14")))) (, ",") (binary_expression "(*(ushort *)(iVar14 + 0x10) & 0x60) != 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x10) & 0x60)" (( "(") (binary_expression "*(ushort *)(iVar14 + 0x10) & 0x60" (pointer_expression "*(ushort *)(iVar14 + 0x10)" (* "*") (cast_expression "(ushort *)(iVar14 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);\n              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }\n            }" ({ "{") (expression_statement "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);" (assignment_expression "iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" (identifier "iVar14") (= "=") (call_expression "(*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(*(undefined4 *)(iVar14 + 4),piVar9,local_d8)" (( "(") (pointer_expression "*(undefined4 *)(iVar14 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 4)" (( "(") (binary_expression "iVar14 + 4" (identifier "iVar14") (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "piVar9") (, ",") (identifier "local_d8") () ")")))) (; ";")) (expression_statement "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar31") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (if_statement "if (iVar14 != 0) {\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" (if "if") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                bVar5 = true;\n                *piVar11 = 99999;\n              }" ({ "{") (expression_statement "bVar5 = true;" (assignment_expression "bVar5 = true" (identifier "bVar5") (= "=") (true "true")) (; ";")) (expression_statement "*piVar11 = 99999;" (assignment_expression "*piVar11 = 99999" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (number_literal "99999")) (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar35 < iVar31)" (( "(") (binary_expression "iVar35 < iVar31" (identifier "iVar35") (< "<") (identifier "iVar31")) () ")")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (; ";")) (} "}"))) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "uVar25 = *param_1;" (assignment_expression "uVar25 = *param_1" (identifier "uVar25") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x1208)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x1208)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x1208" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x1208")) () ")")))) (; ";")) (expression_statement "param_2[0x10] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x10] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x10]" (identifier "param_2") ([ "[") (number_literal "0x10") (] "]")) (= "=") (unary_expression "-(uint)(uVar22 != 0)" (- "-") (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "param_2[0x11] = -(uint)(uVar22 != 0);" (assignment_expression "param_2[0x11] = -(uint)(uVar22 != 0)" (subscript_expression "param_2[0x11]" (identifier "param_2") ([ "[") (number_literal "0x11") (] "]")) (= "=") (unary_expression "-(uint)(uVar22 != 0)" (- "-") (call_expression "(uint)(uVar22 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")"))))) (; ";")) (expression_statement "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);" (assignment_expression "iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" (identifier "iVar31") (= "=") (call_expression "(*pcVar36)(uVar25,unaff_s4,piVar9,uVar12)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(uVar25,unaff_s4,piVar9,uVar12)" (( "(") (identifier "uVar25") (, ",") (identifier "unaff_s4") (, ",") (identifier "piVar9") (, ",") (identifier "uVar12") () ")")))) (; ";")) (if_statement "if (param_5 == 5) {\n        local_60 = 1;\n      }" (if "if") (parenthesized_expression "(param_5 == 5)" (( "(") (binary_expression "param_5 == 5" (identifier "param_5") (== "==") (number_literal "5")) () ")")) (compound_statement "{\n        local_60 = 1;\n      }" ({ "{") (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" (identifier "local_60") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar22 = unaff_s4[2];" (assignment_expression "uVar22 = unaff_s4[2]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[2]" (identifier "unaff_s4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_78 = puVar17;" (assignment_expression "local_78 = puVar17" (identifier "local_78") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (uVar22 != 0) {\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" (if "if") (parenthesized_expression "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);\n        iVar35 = 0;\n        puVar20 = puVar17;\n        do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);\n        local_78 = puVar17 + iVar35;\n      }" ({ "{") (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x71c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x71c)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x71c" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x71c")) () ")")))) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = puVar17;" (assignment_expression "puVar20 = puVar17" (identifier "puVar20") (= "=") (identifier "puVar17")) (; ";")) (do_statement "do {\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        } while (uVar22 != 0);" (do "do") (compound_statement "{\n          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }\n          uVar22 = *(uint *)(uVar22 + 0x14);\n          iVar35 = iVar35 + 1;\n          *puVar20 = uVar25;\n          puVar20 = puVar20 + 1;\n        }" ({ "{") (if_statement "if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }\n          else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" (if "if") (parenthesized_expression "((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))))" (( "(") (binary_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&\n             ((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" (parenthesized_expression "(((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec))" (( "(") (binary_expression "((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)" (parenthesized_expression "((uVar12 == 0) && (iVar31 < 2))" (( "(") (binary_expression "(uVar12 == 0) && (iVar31 < 2)" (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar31 < 2)" (( "(") (binary_expression "iVar31 < 2" (identifier "iVar31") (< "<") (number_literal "2")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar22 != local_ec)" (( "(") (binary_expression "uVar22 != local_ec" (identifier "uVar22") (!= "!=") (identifier "local_ec")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))" (( "(") (parenthesized_expression "(*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0))" (( "(") (binary_expression "*(int *)(uVar22 + 0x24) == 0 ||\n              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" (binary_expression "*(int *)(uVar22 + 0x24) == 0" (pointer_expression "*(int *)(uVar22 + 0x24)" (* "*") (cast_expression "(int *)(uVar22 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x24)" (( "(") (binary_expression "uVar22 + 0x24" (identifier "uVar22") (+ "+") (number_literal "0x24")) () ")")))) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)" (( "(") (comma_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0" (assignment_expression "iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" (identifier "iVar14") (= "=") (call_expression "(*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(*(int *)(uVar22 + 0x24),piVar9,local_d8)" (( "(") (pointer_expression "*(int *)(uVar22 + 0x24)" (* "*") (cast_expression "(int *)(uVar22 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x24)" (( "(") (binary_expression "uVar22 + 0x24" (identifier "uVar22") (+ "+") (number_literal "0x24")) () ")")))) (, ",") (identifier "piVar9") (, ",") (identifier "local_d8") () ")")))) (, ",") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            iVar14 = 0;\n            if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }\nLAB_000b79c4:\n            uVar25 = 0;\n            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;\n          }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(short *)(uVar22 + 0x32) != 0) {\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" (if "if") (parenthesized_expression "(*(short *)(uVar22 + 0x32) != 0)" (( "(") (binary_expression "*(short *)(uVar22 + 0x32) != 0" (pointer_expression "*(short *)(uVar22 + 0x32)" (* "*") (cast_expression "(short *)(uVar22 + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x32)" (( "(") (binary_expression "uVar22 + 0x32" (identifier "uVar22") (+ "+") (number_literal "0x32")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));\n            }" ({ "{") (do_statement "do {\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));" (do "do") (compound_statement "{\n                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);\n                if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }\n                iVar14 = iVar14 + 1;\n                if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }\n              }" ({ "{") (expression_statement "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);" (assignment_expression "iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" (identifier "iVar15") (= "=") (cast_expression "(int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" (* "*") (cast_expression "(short *)(*(int *)(uVar22 + 4) + iVar14 * 2)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar22 + 4) + iVar14 * 2)" (( "(") (binary_expression "*(int *)(uVar22 + 4) + iVar14 * 2" (pointer_expression "*(int *)(uVar22 + 4)" (* "*") (cast_expression "(int *)(uVar22 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 4)" (( "(") (binary_expression "uVar22 + 4" (identifier "uVar22") (+ "+") (number_literal "4")) () ")")))) (+ "+") (binary_expression "iVar14 * 2" (identifier "iVar14") (* "*") (number_literal "2"))) () ")")))))) (; ";")) (if_statement "if (iVar15 < 0) {\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }\n                else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" (if "if") (parenthesized_expression "(iVar15 < 0)" (( "(") (binary_expression "iVar15 < 0" (identifier "iVar15") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);\n                }" ({ "{") (expression_statement "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8);" (assignment_expression "uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" (identifier "uVar25") (= "=") (call_expression "(*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),\n                                      piVar9,local_d8)" (( "(") (pointer_expression "*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4)" (( "(") (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4" (binary_expression "*(int *)(uVar22 + 0x28) + iVar14 * 0x10" (pointer_expression "*(int *)(uVar22 + 0x28)" (* "*") (cast_expression "(int *)(uVar22 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x28)" (( "(") (binary_expression "uVar22 + 0x28" (identifier "uVar22") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (binary_expression "iVar14 * 0x10" (identifier "iVar14") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "piVar9") (, ",") (identifier "local_d8") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" (else "else") (compound_statement "{\n                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;\n                }" ({ "{") (expression_statement "uVar25 = (uint)~piVar9[iVar15] >> 0x1f;" (assignment_expression "uVar25 = (uint)~piVar9[iVar15] >> 0x1f" (identifier "uVar25") (= "=") (binary_expression "(uint)~piVar9[iVar15] >> 0x1f" (cast_expression "(uint)~piVar9[iVar15]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (unary_expression "~piVar9[iVar15]" (~ "~") (subscript_expression "piVar9[iVar15]" (identifier "piVar9") ([ "[") (identifier "iVar15") (] "]")))) (>> ">>") (number_literal "0x1f"))) (; ";")) (} "}")))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar25 != 0) {\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" (if "if") (parenthesized_expression "(uVar25 != 0)" (( "(") (binary_expression "uVar25 != 0" (identifier "uVar25") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar25 = param_1[0xb] + 1;\n                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\n                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }\n                  goto LAB_000b79b4;\n                }" ({ "{") (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" (identifier "uVar25") (= "=") (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" (* "*") (cast_expression "(ushort *)(uVar22 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x34)" (( "(") (binary_expression "uVar22 + 0x34" (identifier "uVar22") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (identifier "uVar25"))) (; ";")) (if_statement "if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {\n                    local_60 = 1;\n                  }" (if "if") (parenthesized_expression "((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05'))" (( "(") (binary_expression "(param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')" (parenthesized_expression "(param_5 == 0xb)" (( "(") (binary_expression "param_5 == 0xb" (identifier "param_5") (== "==") (number_literal "0xb")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(uVar22 + 0x36) == '\x05')" (( "(") (binary_expression "*(char *)(uVar22 + 0x36) == '\x05'" (pointer_expression "*(char *)(uVar22 + 0x36)" (* "*") (cast_expression "(char *)(uVar22 + 0x36)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x36)" (( "(") (binary_expression "uVar22 + 0x36" (identifier "uVar22") (+ "+") (number_literal "0x36")) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    local_60 = 1;\n                  }" ({ "{") (expression_statement "local_60 = 1;" (assignment_expression "local_60 = 1" (identifier "local_60") (= "=") (number_literal "1")) (; ";")) (} "}"))) (goto_statement "goto LAB_000b79b4;" (goto "goto") (statement_identifier "LAB_000b79b4") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32))" (( "(") (binary_expression "iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32)" (identifier "iVar14") (< "<") (binary_expression "(int)(uint)*(ushort *)(uVar22 + 0x32)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(uVar22 + 0x32)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x32)" (( "(") (binary_expression "uVar22 + 0x32" (identifier "uVar22") (+ "+") (number_literal "0x32")) () ")"))))) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_000b79c4:\n            uVar25 = 0;" (statement_identifier "LAB_000b79c4") (: ":") (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";"))) (expression_statement "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + iVar35 + 1)" (* "*") (cast_expression "(undefined1 *)((int)puVar10 + iVar35 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + iVar35 + 1)" (( "(") (binary_expression "(int)puVar10 + iVar35 + 1" (binary_expression "(int)puVar10 + iVar35" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (identifier "iVar35")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" (else "else") (compound_statement "{\n            uVar25 = param_1[0xb] + 1;\n            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;\nLAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;\n          }" ({ "{") (expression_statement "uVar25 = param_1[0xb] + 1;" (assignment_expression "uVar25 = param_1[0xb] + 1" (identifier "uVar25") (= "=") (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;" (assignment_expression "param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "*(ushort *)(uVar22 + 0x34) + uVar25" (pointer_expression "*(ushort *)(uVar22 + 0x34)" (* "*") (cast_expression "(ushort *)(uVar22 + 0x34)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x34)" (( "(") (binary_expression "uVar22 + 0x34" (identifier "uVar22") (+ "+") (number_literal "0x34")) () ")")))) (+ "+") (identifier "uVar25"))) (; ";")) (labeled_statement "LAB_000b79b4:\n            if (uVar25 == 0) goto LAB_000b79c4;" (statement_identifier "LAB_000b79b4") (: ":") (if_statement "if (uVar25 == 0) goto LAB_000b79c4;" (if "if") (parenthesized_expression "(uVar25 == 0)" (( "(") (binary_expression "uVar25 == 0" (identifier "uVar25") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b79c4;" (goto "goto") (statement_identifier "LAB_000b79c4") (; ";")))) (} "}")))) (expression_statement "uVar22 = *(uint *)(uVar22 + 0x14);" (assignment_expression "uVar22 = *(uint *)(uVar22 + 0x14)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(uVar22 + 0x14)" (* "*") (cast_expression "(uint *)(uVar22 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x14)" (( "(") (binary_expression "uVar22 + 0x14" (identifier "uVar22") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar20 = uVar25;" (assignment_expression "*puVar20 = uVar25" (pointer_expression "*puVar20" (* "*") (identifier "puVar20")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "puVar20 = puVar20 + 1;" (assignment_expression "puVar20 = puVar20 + 1" (identifier "puVar20") (= "=") (binary_expression "puVar20 + 1" (identifier "puVar20") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "local_78 = puVar17 + iVar35;" (assignment_expression "local_78 = puVar17 + iVar35" (identifier "local_78") (= "=") (binary_expression "puVar17 + iVar35" (identifier "puVar17") (+ "+") (identifier "iVar35"))) (; ";")) (} "}"))) (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" (identifier "uVar22") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_60 != 0) {\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);\n      }" ({ "{") (expression_statement "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);" (call_expression "(*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23)" (parenthesized_expression "(*(code *)PTR_memset_000f5450)" (( "(") (pointer_expression "*(code *)PTR_memset_000f5450" (* "*") (cast_expression "(code *)PTR_memset_000f5450" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memset_000f5450"))) () ")")) (argument_list "(puVar10,1,pcVar23)" (( "(") (identifier "puVar10") (, ",") (number_literal "1") (, ",") (identifier "pcVar23") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" (* "*") (cast_expression "(char *)((int)param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;\n      }" ({ "{") (expression_statement "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;" (assignment_expression "*(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (pointer_expression "*(ushort *)(local_f8 + 0x96)" (* "*") (cast_expression "(ushort *)(local_f8 + 0x96)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x96)" (( "(") (binary_expression "local_f8 + 0x96" (identifier "local_f8") (+ "+") (number_literal "0x96")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800" (binary_expression "*(ushort *)(local_f8 + 0x96) & 0xf7ff" (pointer_expression "*(ushort *)(local_f8 + 0x96)" (* "*") (cast_expression "(ushort *)(local_f8 + 0x96)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x96)" (( "(") (binary_expression "local_f8 + 0x96" (identifier "local_f8") (+ "+") (number_literal "0x96")) () ")")))) (& "&") (number_literal "0xf7ff")) (| "|") (number_literal "0x800"))) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))\n                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + -0x5698))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f5308 + -0x5698)" (* "*") (cast_expression "(code *)(PTR_LAB_000f5308 + -0x5698)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + -0x5698)" (( "(") (binary_expression "PTR_LAB_000f5308 + -0x5698" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "-0x5698")) () ")")))) () ")")) (argument_list "(param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0)" (( "(") (identifier "param_1") (, ",") (binary_expression "local_e4 != (uint *)0x0 || iVar31 != 0" (binary_expression "local_e4 != (uint *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0"))) (, ",") (identifier "local_e0") () ")"))) (; ";")) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (if_statement "if (uVar22 == 0) {\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }\n      else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar25 = param_1[0xb];\n        local_80 = *local_78;\n        local_e0 = (code *)(uVar25 + 1);\n        sVar3 = *(short *)((int)unaff_s4 + 0x2a);\n        param_1[0xb] = (uint)local_e0;\n        local_c8 = local_e0;\n        if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }\nLAB_000b7c48:\n        local_90 = pcVar23 + 1;\n        param_1[0xb] = (uint)(pcVar23 + sVar3);\n      }" ({ "{") (expression_statement "uVar25 = param_1[0xb];" (assignment_expression "uVar25 = param_1[0xb]" (identifier "uVar25") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "local_80 = *local_78;" (assignment_expression "local_80 = *local_78" (identifier "local_80") (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (expression_statement "local_e0 = (code *)(uVar25 + 1);" (assignment_expression "local_e0 = (code *)(uVar25 + 1)" (identifier "local_e0") (= "=") (cast_expression "(code *)(uVar25 + 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar25 + 1)" (( "(") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "sVar3 = *(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "sVar3 = *(short *)((int)unaff_s4 + 0x2a)" (identifier "sVar3") (= "=") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "param_1[0xb] = (uint)local_e0;" (assignment_expression "param_1[0xb] = (uint)local_e0" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)local_e0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_e0"))) (; ";")) (expression_statement "local_c8 = local_e0;" (assignment_expression "local_c8 = local_e0" (identifier "local_c8") (= "=") (identifier "local_e0")) (; ";")) (if_statement "if (local_84 == 0) {\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }\n        else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }\nLAB_000b7c3c:\n          local_c8 = pcVar23 + 1;\n          param_1[0xb] = (uint)local_c8;\n          pcVar23 = local_c8;\n        }" ({ "{") (if_statement "if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }\n          else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" (if "if") (parenthesized_expression "((local_e4 == (uint *)0x0) && (iVar31 == 0))" (( "(") (binary_expression "(local_e4 == (uint *)0x0) && (iVar31 == 0)" (parenthesized_expression "(local_e4 == (uint *)0x0)" (( "(") (binary_expression "local_e4 == (uint *)0x0" (identifier "local_e4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            local_94 = 0;\n            pcVar23 = local_e0;\n            if (local_d8 == (code *)0x0) goto LAB_000b7c48;\n          }" ({ "{") (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" (identifier "pcVar23") (= "=") (identifier "local_e0")) (; ";")) (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b7c48;" (if "if") (parenthesized_expression "(local_d8 == (code *)0x0)" (( "(") (binary_expression "local_d8 == (code *)0x0" (identifier "local_d8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7c48;" (goto "goto") (statement_identifier "LAB_000b7c48") (; ";"))) (} "}")) (else_clause "else {\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" (else "else") (compound_statement "{\n            local_94 = uVar25 + 2;\n            param_1[0xb] = (uint)(local_e0 + sVar3);\n            pcVar23 = local_e0 + sVar3;\n          }" ({ "{") (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" (identifier "local_94") (= "=") (binary_expression "uVar25 + 2" (identifier "uVar25") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "param_1[0xb] = (uint)(local_e0 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(local_e0 + sVar3)" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (call_expression "(uint)(local_e0 + sVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_e0 + sVar3)" (( "(") (binary_expression "local_e0 + sVar3" (identifier "local_e0") (+ "+") (identifier "sVar3")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" (identifier "pcVar23") (= "=") (binary_expression "local_e0 + sVar3" (identifier "local_e0") (+ "+") (identifier "sVar3"))) (; ";")) (} "}")))) (labeled_statement "LAB_000b7c3c:\n          local_c8 = pcVar23 + 1;" (statement_identifier "LAB_000b7c3c") (: ":") (expression_statement "local_c8 = pcVar23 + 1;" (assignment_expression "local_c8 = pcVar23 + 1" (identifier "local_c8") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_1[0xb] = (uint)local_c8;" (assignment_expression "param_1[0xb] = (uint)local_c8" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)local_c8" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_c8"))) (; ";")) (expression_statement "pcVar23 = local_c8;" (assignment_expression "pcVar23 = local_c8" (identifier "pcVar23") (= "=") (identifier "local_c8")) (; ";")) (} "}")) (else_clause "else {\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" (else "else") (compound_statement "{\n          local_94 = uVar25 + 2;\n          pcVar23 = local_e0 + sVar3;\n          param_1[0xb] = (uint)pcVar23;\n          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;\n        }" ({ "{") (expression_statement "local_94 = uVar25 + 2;" (assignment_expression "local_94 = uVar25 + 2" (identifier "local_94") (= "=") (binary_expression "uVar25 + 2" (identifier "uVar25") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar23 = local_e0 + sVar3;" (assignment_expression "pcVar23 = local_e0 + sVar3" (identifier "pcVar23") (= "=") (binary_expression "local_e0 + sVar3" (identifier "local_e0") (+ "+") (identifier "sVar3"))) (; ";")) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)pcVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar23"))) (; ";")) (if_statement "if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;" (if "if") (parenthesized_expression "(((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0))" (( "(") (binary_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)" (parenthesized_expression "((uVar12 != 0) || (local_e4 != (uint *)0x0))" (( "(") (binary_expression "(uVar12 != 0) || (local_e4 != (uint *)0x0)" (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_e4 != (uint *)0x0)" (( "(") (binary_expression "local_e4 != (uint *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000b7c3c;" (goto "goto") (statement_identifier "LAB_000b7c3c") (; ";"))) (} "}")))) (labeled_statement "LAB_000b7c48:\n        local_90 = pcVar23 + 1;" (statement_identifier "LAB_000b7c48") (: ":") (expression_statement "local_90 = pcVar23 + 1;" (assignment_expression "local_90 = pcVar23 + 1" (identifier "local_90") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "param_1[0xb] = (uint)(pcVar23 + sVar3);" (assignment_expression "param_1[0xb] = (uint)(pcVar23 + sVar3)" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (call_expression "(uint)(pcVar23 + sVar3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(pcVar23 + sVar3)" (( "(") (binary_expression "pcVar23 + sVar3" (identifier "pcVar23") (+ "+") (identifier "sVar3")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" (else "else") (compound_statement "{\n        local_80 = 0;\n        local_94 = 0;\n        local_90 = (code *)0x0;\n        local_c8 = (code *)0x0;\n        local_e0 = (code *)0x0;\n      }" ({ "{") (expression_statement "local_80 = 0;" (assignment_expression "local_80 = 0" (identifier "local_80") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_94 = 0;" (assignment_expression "local_94 = 0" (identifier "local_94") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_90 = (code *)0x0;" (assignment_expression "local_90 = (code *)0x0" (identifier "local_90") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_c8 = (code *)0x0;" (assignment_expression "local_c8 = (code *)0x0" (identifier "local_c8") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_e0 = (code *)0x0;" (assignment_expression "local_e0 = (code *)0x0" (identifier "local_e0") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "unaff_s3 = local_d8;" (assignment_expression "unaff_s3 = local_d8" (identifier "unaff_s3") (= "=") (identifier "local_d8")) (; ";")) (if_statement "if (local_e8 == (code *)0x0) {\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }\n      else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;\n      }" ({ "{") (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7cac;" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7cac;" (goto "goto") (statement_identifier "LAB_000b7cac") (; ";"))) (} "}")) (else_clause "else {\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" (else "else") (compound_statement "{\n        local_5c = param_1[0x3d];\n        param_1[0x3d] = *unaff_s4;\n        local_58 = param_1;\n        if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }\n      }" ({ "{") (expression_statement "local_5c = param_1[0x3d];" (assignment_expression "local_5c = param_1[0x3d]" (identifier "local_5c") (= "=") (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]"))) (; ";")) (expression_statement "param_1[0x3d] = *unaff_s4;" (assignment_expression "param_1[0x3d] = *unaff_s4" (subscript_expression "param_1[0x3d]" (identifier "param_1") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (pointer_expression "*unaff_s4" (* "*") (identifier "unaff_s4"))) (; ";")) (expression_statement "local_58 = param_1;" (assignment_expression "local_58 = param_1" (identifier "local_58") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (pcVar34 == (code *)0x0) {\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);\nLAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);\n          puVar20 = unaff_s4;\n          if (iVar35 != 0) goto LAB_000b7aa8;\n          uVar22 = unaff_s4[0xe];\n        }" ({ "{") (expression_statement "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);" (call_expression "FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" (identifier "FUN_000a5e24") (argument_list "(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (subscript_expression "unaff_s4[0x12]" (identifier "unaff_s4") ([ "[") (number_literal "0x12") (] "]")) (, ",") (identifier "param_4") (, ",") (identifier "local_f0") () ")"))) (; ";")) (labeled_statement "LAB_000b7cac:\n          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" (statement_identifier "LAB_000b7cac") (: ":") (expression_statement "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);" (assignment_expression "iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" (identifier "iVar35") (= "=") (call_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + -0x562c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + -0x562c)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + -0x562c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + -0x562c)" (( "(") (binary_expression "PTR_LAB_000f530c + -0x562c" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "-0x562c")) () ")")))) () ")")) (argument_list "(&local_54,param_4)" (( "(") (pointer_expression "&local_54" (& "&") (identifier "local_54")) (, ",") (identifier "param_4") () ")")))) (; ";"))) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (iVar35 != 0) goto LAB_000b7aa8;" (if "if") (parenthesized_expression "(iVar35 != 0)" (( "(") (binary_expression "iVar35 != 0" (identifier "iVar35") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";"))) (expression_statement "uVar22 = unaff_s4[0xe];" (assignment_expression "uVar22 = unaff_s4[0xe]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (uVar22 == 0) {\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }\n      else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" (if "if") (parenthesized_expression "(uVar22 == 0)" (( "(") (binary_expression "uVar22 == 0" (identifier "uVar22") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar22 = *(uint *)(pcVar32 + 0x20);\n        local_b0 = (code *)(param_1[0xe] - 1);\n        param_1[0xe] = (uint)local_b0;\n        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }\n        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }\nLAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }\n        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);\n        puVar19 = PTR_LAB_000f5308;\n        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n        if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }\n        if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }\n        if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }\nLAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }\n        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);\n        if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }\n        (*pcVar34)(local_f8,local_b0);\n        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }\n        puVar20 = unaff_s4;\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }\n      }" ({ "{") (expression_statement "uVar22 = *(uint *)(pcVar32 + 0x20);" (assignment_expression "uVar22 = *(uint *)(pcVar32 + 0x20)" (identifier "uVar22") (= "=") (pointer_expression "*(uint *)(pcVar32 + 0x20)" (* "*") (cast_expression "(uint *)(pcVar32 + 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar32 + 0x20)" (( "(") (binary_expression "pcVar32 + 0x20" (identifier "pcVar32") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "local_b0 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_b0 = (code *)(param_1[0xe] - 1)" (identifier "local_b0") (= "=") (cast_expression "(code *)(param_1[0xe] - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xe] - 1)" (( "(") (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_1[0xe] = (uint)local_b0;" (assignment_expression "param_1[0xe] = (uint)local_b0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(uint)local_b0" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_b0"))) (; ";")) (if_statement "if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {\n          local_a8 = 0;\n        }\n        else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" (if "if") (parenthesized_expression "(((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0))" (( "(") (binary_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)" (parenthesized_expression "((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0'))" (( "(") (binary_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||\n            (*(char *)((int)param_1 + 0x12) != '\0')" (parenthesized_expression "(((uVar22 & 1) == 0) || (param_1[0x1e] != 0))" (( "(") (binary_expression "((uVar22 & 1) == 0) || (param_1[0x1e] != 0)" (parenthesized_expression "((uVar22 & 1) == 0)" (( "(") (binary_expression "(uVar22 & 1) == 0" (parenthesized_expression "(uVar22 & 1)" (( "(") (binary_expression "uVar22 & 1" (identifier "uVar22") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_1[0x1e] != 0)" (( "(") (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)param_1 + 0x12) != '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x12) != '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" (* "*") (cast_expression "(char *)((int)param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_100 != 0)" (( "(") (binary_expression "local_100 != 0" (identifier "local_100") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          local_a8 = 0;\n        }" ({ "{") (expression_statement "local_a8 = 0;" (assignment_expression "local_a8 = 0" (identifier "local_a8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" (else "else") (compound_statement "{\n          local_a8 = param_1[0xb] + 1;\n          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          param_1[0xb] = local_a8;\n          (*pcVar23)(local_f8,0x45,0,local_a8,0);\n        }" ({ "{") (expression_statement "local_a8 = param_1[0xb] + 1;" (assignment_expression "local_a8 = param_1[0xb] + 1" (identifier "local_a8") (= "=") (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "pcVar23") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (expression_statement "param_1[0xb] = local_a8;" (assignment_expression "param_1[0xb] = local_a8" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "local_a8")) (; ";")) (expression_statement "(*pcVar23)(local_f8,0x45,0,local_a8,0);" (call_expression "(*pcVar23)(local_f8,0x45,0,local_a8,0)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(local_f8,0x45,0,local_a8,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x45") (, ",") (number_literal "0") (, ",") (identifier "local_a8") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (if_statement "if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }\n        else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" (if "if") (parenthesized_expression "((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0))" (( "(") (binary_expression "(pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)" (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" (( "(") (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          (*local_f4)(local_f8,0x48,0,local_80,local_e0);\n          local_98 = (code *)0x0;\n          local_dc = (code *)0x0;\n          if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }\n          local_9c = (code *)0x0;\n          local_cc = (code *)0x0;\n          local_d0 = 0;\nLAB_000b9260:\n          uVar18 = 0x1004;\n          if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }\n          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);\n          puVar20 = unaff_s4;\n          if (local_7c == 0) goto LAB_000b7aa8;\n          local_34 = *(code **)(local_7c + 0x14);\n          local_30 = *(code **)(local_7c + 0x18);\n          cVar2 = *(char *)(local_7c + 0x2e);\n          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;\n          if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          *(undefined1 *)(puVar20 + 5) = 1;\n          uVar22 = unaff_s4[9];\n          if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }\n          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;\n          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n          if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }\n          local_9c = local_dc;\n          local_a4 = 0;\n          local_dc = local_98;\nLAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\nLAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;\nLAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }\n          local_d4 = (code *)(param_1[0xe] - 1);\n          param_1[0xe] = (uint)local_d4;\n          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n          local_a0 = *(int *)(local_f8 + 0x6c);\n          if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }\n          iVar35 = 0;\n          if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }\nLAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;\n        }" ({ "{") (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "local_f4") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x48,0,local_80,local_e0);" (call_expression "(*local_f4)(local_f8,0x48,0,local_80,local_e0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x48,0,local_80,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x48") (, ",") (number_literal "0") (, ",") (identifier "local_80") (, ",") (identifier "local_e0") () ")"))) (; ";")) (expression_statement "local_98 = (code *)0x0;" (assignment_expression "local_98 = (code *)0x0" (identifier "local_98") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_dc = (code *)0x0;" (assignment_expression "local_dc = (code *)0x0" (identifier "local_dc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_100 != 0) {\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" (if "if") (parenthesized_expression "(local_100 != 0)" (( "(") (binary_expression "local_100 != 0" (identifier "local_100") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_d0 = 0;\nLAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);\n            uVar22 = unaff_s4[9];\n            local_cc = (code *)0x0;\n            local_9c = (code *)0x0;\n            local_88 = 0;\n            cVar2 = '\x01';\n            local_7c = 0;\nLAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }\n            goto LAB_000b8330;\n          }" ({ "{") (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000b7d5c:\n            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" (statement_identifier "LAB_000b7d5c") (: ":") (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x5054))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x5054)" (* "*") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x5054)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x5054)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x5054" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x5054")) () ")")))) () ")")) (argument_list "(param_1,param_4,local_b0,0x10)" (( "(") (identifier "param_1") (, ",") (identifier "param_4") (, ",") (identifier "local_b0") (, ",") (number_literal "0x10") () ")"))) (; ";"))) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" (identifier "local_cc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" (identifier "local_9c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = '\x01';" (assignment_expression "cVar2 = '\x01'" (identifier "cVar2") (= "=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) (; ";")) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" (identifier "local_7c") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000b7d98:\n            if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" (statement_identifier "LAB_000b7d98") (: ":") (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }\n            else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" (if "if") (parenthesized_expression "((uVar22 & 0x80) == 0)" (( "(") (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" (( "(") (binary_expression "uVar22 & 0x80" (identifier "uVar22") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);\n              local_a4 = 0;\n              local_9c = local_dc;\n              local_dc = local_98;\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7f") (, ",") (identifier "local_f0") (, ",") (identifier "local_e0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" (identifier "local_dc") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else {\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" (else "else") (compound_statement "{\nLAB_000b7da8:\n              local_a4 = local_d0;\n              if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }\n              local_d0 = local_a4;\n              if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }\n            }" ({ "{") (labeled_statement "LAB_000b7da8:\n              local_a4 = local_d0;" (statement_identifier "LAB_000b7da8") (: ":") (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" (identifier "local_a4") (= "=") (identifier "local_d0")) (; ";"))) (if_statement "if (0 < local_d0) {\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" (if "if") (parenthesized_expression "(0 < local_d0)" (( "(") (binary_expression "0 < local_d0" (number_literal "0") (< "<") (identifier "local_d0")) () ")")) (compound_statement "{\nLAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n                iVar35 = 0;\n                pcVar23 = local_dc;\n                do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);\n              }" ({ "{") (labeled_statement "LAB_000b7db0:\n                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (statement_identifier "LAB_000b7db0") (: ":") (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7574" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7574")) () ")")))) (; ";"))) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" (identifier "pcVar23") (= "=") (identifier "local_dc")) (; ";")) (do_statement "do {\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                } while (local_d0 << 1 != iVar35);" (do "do") (compound_statement "{\n                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);\n                  iVar35 = iVar35 + 2;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);\n                  pcVar23 = pcVar23 + 1;\n                  local_a4 = local_d0;\n                }" ({ "{") (expression_statement "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);" (assignment_expression "psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35)" (identifier "psVar28") (= "=") (cast_expression "(short *)(*(int *)(local_ec + 4) + iVar35)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(local_ec + 4) + iVar35)" (( "(") (binary_expression "*(int *)(local_ec + 4) + iVar35" (pointer_expression "*(int *)(local_ec + 4)" (* "*") (cast_expression "(int *)(local_ec + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + 4)" (( "(") (binary_expression "local_ec + 4" (identifier "local_ec") (+ "+") (number_literal "4")) () ")")))) (+ "+") (identifier "iVar35")) () ")")))) (; ";")) (expression_statement "iVar35 = iVar35 + 2;" (assignment_expression "iVar35 = iVar35 + 2" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 2" (identifier "iVar35") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23)" (( "(") (identifier "local_f8") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (cast_expression "(int)*psVar28" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*psVar28" (* "*") (identifier "psVar28"))) (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" (identifier "local_a4") (= "=") (identifier "local_d0")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_d0 << 1 != iVar35)" (( "(") (binary_expression "local_d0 << 1 != iVar35" (binary_expression "local_d0 << 1" (identifier "local_d0") (<< "<<") (number_literal "1")) (!= "!=") (identifier "iVar35")) () ")")) (; ";")) (} "}"))) (expression_statement "local_d0 = local_a4;" (assignment_expression "local_d0 = local_a4" (identifier "local_d0") (= "=") (identifier "local_a4")) (; ";")) (if_statement "if (cVar2 == '\0') {\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }\n              else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\nLAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);\n                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);\n                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);\n                local_9c = local_dc;\n                local_a4 = 0;\n                cVar2 = '\0';\n                local_dc = local_98;\n              }" ({ "{") (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "local_f4") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (labeled_statement "LAB_000b9410:\n                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" (statement_identifier "LAB_000b9410") (: ":") (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" (identifier "uVar18") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6954))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6954)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6954)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x6954)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x6954" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x6954")) () ")")))) () ")")) (argument_list "(pcVar32,local_ec)" (( "(") (identifier "pcVar32") (, ",") (identifier "local_ec") () ")")))) (; ";"))) (expression_statement "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);" (assignment_expression "uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" (identifier "uVar21") (= "=") (call_expression "(*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x5b,local_dc,local_d0,local_98)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x5b") (, ",") (identifier "local_dc") (, ",") (identifier "local_d0") (, ",") (identifier "local_98") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x37ac" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x37ac")) () ")")))) () ")")) (argument_list "(local_f8,uVar21,uVar18,local_d0)" (( "(") (identifier "local_f8") (, ",") (identifier "uVar21") (, ",") (identifier "uVar18") (, ",") (identifier "local_d0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x82,local_cc,local_98,local_dc,local_d0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x82") (, ",") (identifier "local_cc") (, ",") (identifier "local_98") (, ",") (identifier "local_dc") (, ",") (identifier "local_d0") () ")"))) (; ";")) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" (identifier "local_dc") (= "=") (identifier "local_98")) (; ";")) (} "}")) (else_clause "else if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" (else "else") (if_statement "if (local_9c == (code *)0x0) {\n                local_9c = local_dc;\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" (if "if") (parenthesized_expression "(local_9c == (code *)0x0)" (( "(") (binary_expression "local_9c == (code *)0x0" (identifier "local_9c") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                local_9c = local_dc;\n              }" ({ "{") (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" (else "else") (compound_statement "{\n                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);\n                local_9c = local_dc;\n              }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x29e8" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x29e8")) () ")")))) () ")")) (argument_list "(*(int *)local_f8,local_f8 + 0x68,local_9c)" (( "(") (pointer_expression "*(int *)local_f8" (* "*") (cast_expression "(int *)local_f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_f8"))) (, ",") (binary_expression "local_f8 + 0x68" (identifier "local_f8") (+ "+") (number_literal "0x68")) (, ",") (identifier "local_9c") () ")"))) (; ";")) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (} "}")))))) (} "}"))))) (goto_statement "goto LAB_000b8330;" (goto "goto") (statement_identifier "LAB_000b8330") (; ";")) (} "}"))) (expression_statement "local_9c = (code *)0x0;" (assignment_expression "local_9c = (code *)0x0" (identifier "local_9c") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" (identifier "local_cc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000b9260:\n          uVar18 = 0x1004;" (statement_identifier "LAB_000b9260") (: ":") (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" (identifier "uVar18") (= "=") (number_literal "0x1004")) (; ";"))) (if_statement "if (*(char *)((int)param_1 + 0x12) == '\0') {\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" (* "*") (cast_expression "(char *)((int)param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }\n          }" ({ "{") (if_statement "if (local_e4 == (uint *)0x0) {\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }\n            else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" (if "if") (parenthesized_expression "(local_e4 == (uint *)0x0)" (( "(") (binary_expression "local_e4 == (uint *)0x0" (identifier "local_e4") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              uVar18 = 0x1004;\n              if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }\n            }" ({ "{") (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" (identifier "uVar18") (= "=") (number_literal "0x1004")) (; ";")) (if_statement "if (iVar31 == 0) {\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (uVar12 != 0) goto LAB_000b9278;\n                uVar18 = 0x100c;\n                if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }\n              }" ({ "{") (if_statement "if (uVar12 != 0) goto LAB_000b9278;" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b9278;" (goto "goto") (statement_identifier "LAB_000b9278") (; ";"))) (expression_statement "uVar18 = 0x100c;" (assignment_expression "uVar18 = 0x100c" (identifier "uVar18") (= "=") (number_literal "0x100c")) (; ";")) (if_statement "if (local_60 != 0) {\n                  uVar18 = 0x1004;\n                }" (if "if") (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar18 = 0x1004;\n                }" ({ "{") (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" (identifier "uVar18") (= "=") (number_literal "0x1004")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" (else "else") (compound_statement "{\nLAB_000b9278:\n              uVar18 = 0x1004;\n            }" ({ "{") (labeled_statement "LAB_000b9278:\n              uVar18 = 0x1004;" (statement_identifier "LAB_000b9278") (: ":") (expression_statement "uVar18 = 0x1004;" (assignment_expression "uVar18 = 0x1004" (identifier "uVar18") (= "=") (number_literal "0x1004")) (; ";"))) (} "}")))) (} "}"))) (expression_statement "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);" (assignment_expression "local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" (identifier "local_7c") (= "=") (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4)" (identifier "FUN_0009e360") (argument_list "(param_1,param_2,param_4,0,0,uVar18,local_c4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "uVar18") (, ",") (identifier "local_c4") () ")")))) (; ";")) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (local_7c == 0) goto LAB_000b7aa8;" (if "if") (parenthesized_expression "(local_7c == 0)" (( "(") (binary_expression "local_7c == 0" (identifier "local_7c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";"))) (expression_statement "local_34 = *(code **)(local_7c + 0x14);" (assignment_expression "local_34 = *(code **)(local_7c + 0x14)" (identifier "local_34") (= "=") (pointer_expression "*(code **)(local_7c + 0x14)" (* "*") (cast_expression "(code **)(local_7c + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_7c + 0x14)" (( "(") (binary_expression "local_7c + 0x14" (identifier "local_7c") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_30 = *(code **)(local_7c + 0x18);" (assignment_expression "local_30 = *(code **)(local_7c + 0x18)" (identifier "local_30") (= "=") (pointer_expression "*(code **)(local_7c + 0x18)" (* "*") (cast_expression "(code **)(local_7c + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_7c + 0x18)" (( "(") (binary_expression "local_7c + 0x18" (identifier "local_7c") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "cVar2 = *(char *)(local_7c + 0x2e);" (assignment_expression "cVar2 = *(char *)(local_7c + 0x2e)" (identifier "cVar2") (= "=") (pointer_expression "*(char *)(local_7c + 0x2e)" (* "*") (cast_expression "(char *)(local_7c + 0x2e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_7c + 0x2e)" (( "(") (binary_expression "local_7c + 0x2e" (identifier "local_7c") (+ "+") (number_literal "0x2e")) () ")"))))) (; ";")) (expression_statement "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;" (assignment_expression "local_88 = *(uint *)(local_7c + 0x30) >> 0x1f" (identifier "local_88") (= "=") (binary_expression "*(uint *)(local_7c + 0x30) >> 0x1f" (pointer_expression "*(uint *)(local_7c + 0x30)" (* "*") (cast_expression "(uint *)(local_7c + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_7c + 0x30)" (( "(") (binary_expression "local_7c + 0x30" (identifier "local_7c") (+ "+") (number_literal "0x30")) () ")")))) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if (cVar2 == '\x01') {\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n            uVar22 = unaff_s4[9];\n            goto LAB_000b7d98;\n          }" ({ "{") (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (goto_statement "goto LAB_000b7d98;" (goto "goto") (statement_identifier "LAB_000b7d98") (; ";")) (} "}"))) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" (identifier "puVar20") (= "=") (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" (if "if") (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" (( "(") (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar20 = param_1;\n          }" ({ "{") (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" (identifier "puVar20") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar20 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 5)" (( "(") (binary_expression "puVar20 + 5" (identifier "puVar20") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar22 = unaff_s4[9];" (assignment_expression "uVar22 = unaff_s4[9]" (identifier "uVar22") (= "=") (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (if_statement "if (cVar2 == '\x02') {\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;\n            if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }\n            if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }\n            goto LAB_000b9410;\n          }" ({ "{") (if_statement "if ((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))\n            goto LAB_000b7d98;" (if "if") (parenthesized_expression "((((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))" (( "(") (binary_expression "(((int)local_30 < 0) || (local_f0 == local_30)) ||\n               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" (parenthesized_expression "(((int)local_30 < 0) || (local_f0 == local_30))" (( "(") (binary_expression "((int)local_30 < 0) || (local_f0 == local_30)" (parenthesized_expression "((int)local_30 < 0)" (( "(") (binary_expression "(int)local_30 < 0" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_f0 == local_30)" (( "(") (binary_expression "local_f0 == local_30" (identifier "local_f0") (== "==") (identifier "local_30")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0')" (( "(") (binary_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'" (pointer_expression "*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" (* "*") (cast_expression "(char *)((int)puVar10 + ((int)local_30 - (int)local_d4))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" (( "(") (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (parenthesized_expression "((int)local_30 - (int)local_d4)" (( "(") (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (- "-") (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4"))) () ")"))) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_000b7d98;" (goto "goto") (statement_identifier "LAB_000b7d98") (; ";"))) (if_statement "if ((uVar22 & 0x80) == 0) {\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" (if "if") (parenthesized_expression "((uVar22 & 0x80) == 0)" (( "(") (binary_expression "(uVar22 & 0x80) == 0" (parenthesized_expression "(uVar22 & 0x80)" (( "(") (binary_expression "uVar22 & 0x80" (identifier "uVar22") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);\n              goto LAB_000b937c;\n            }" ({ "{") (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7f") (, ",") (identifier "local_f0") (, ",") (identifier "local_e0") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_000b937c;" (goto "goto") (statement_identifier "LAB_000b937c") (; ";")) (} "}"))) (if_statement "if (0 < local_d0) {\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" (if "if") (parenthesized_expression "(0 < local_d0)" (( "(") (binary_expression "0 < local_d0" (number_literal "0") (< "<") (identifier "local_d0")) () ")")) (compound_statement "{\n              cVar2 = '\0';\n              goto LAB_000b7db0;\n            }" ({ "{") (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (goto_statement "goto LAB_000b7db0;" (goto "goto") (statement_identifier "LAB_000b7db0") (; ";")) (} "}"))) (goto_statement "goto LAB_000b9410;" (goto "goto") (statement_identifier "LAB_000b9410") (; ";")) (} "}"))) (if_statement "if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;" (if "if") (parenthesized_expression "((uVar22 & 0x80) != 0)" (( "(") (binary_expression "(uVar22 & 0x80) != 0" (parenthesized_expression "(uVar22 & 0x80)" (( "(") (binary_expression "uVar22 & 0x80" (identifier "uVar22") (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b7da8;" (goto "goto") (statement_identifier "LAB_000b7da8") (; ";"))) (expression_statement "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_f0,local_e0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x7f,local_f0,local_e0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7f") (, ",") (identifier "local_f0") (, ",") (identifier "local_e0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (cVar2 == '\0') {\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000b937c:\n            uVar22 = param_1[0xb];\n            param_1[0xb] = uVar22 + 1;\n            *local_78 = uVar22 + 1;\n            (*local_f4)(local_f8,0x93,local_80,local_e0,0);\n            cVar2 = '\0';\n          }" ({ "{") (labeled_statement "LAB_000b937c:\n            uVar22 = param_1[0xb];" (statement_identifier "LAB_000b937c") (: ":") (expression_statement "uVar22 = param_1[0xb];" (assignment_expression "uVar22 = param_1[0xb]" (identifier "uVar22") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";"))) (expression_statement "param_1[0xb] = uVar22 + 1;" (assignment_expression "param_1[0xb] = uVar22 + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*local_78 = uVar22 + 1;" (assignment_expression "*local_78 = uVar22 + 1" (pointer_expression "*local_78" (* "*") (identifier "local_78")) (= "=") (binary_expression "uVar22 + 1" (identifier "uVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x93,local_80,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x93,local_80,local_e0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x93,local_80,local_e0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x93") (, ",") (identifier "local_80") (, ",") (identifier "local_e0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (expression_statement "local_a4 = 0;" (assignment_expression "local_a4 = 0" (identifier "local_a4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_dc = local_98;" (assignment_expression "local_dc = local_98" (identifier "local_dc") (= "=") (identifier "local_98")) (; ";")) (labeled_statement "LAB_000b8ff0:\n          if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" (statement_identifier "LAB_000b8ff0") (: ":") (if_statement "if (cVar2 == '\x02') {\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n            if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }\n            pcVar23 = local_dc;\n            if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }\n            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);\n            pcVar23 = local_d4;\n            goto LAB_000b8340;\n          }" ({ "{") (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }\n            else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }\n              if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }\n              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }\n              if (unaff_s4[0xe] == 0) goto LAB_000b9084;\nLAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }\nLAB_000b902c:\n              local_d4 = local_b0;\n              if (cVar2 != '\x01') goto LAB_000b9038;\n            }" ({ "{") (labeled_statement "LAB_000b9784:\n              if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" (statement_identifier "LAB_000b9784") (: ":") (if_statement "if (-1 < (int)local_34) {\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" (if "if") (parenthesized_expression "(-1 < (int)local_34)" (( "(") (binary_expression "-1 < (int)local_34" (number_literal "-1") (< "<") (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34"))) () ")")) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;\n              }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" (* "*") (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + ((int)local_34 - (int)local_d4))" (( "(") (binary_expression "(int)puVar10 + ((int)local_34 - (int)local_d4)" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (parenthesized_expression "((int)local_34 - (int)local_d4)" (( "(") (binary_expression "(int)local_34 - (int)local_d4" (cast_expression "(int)local_34" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_34")) (- "-") (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4"))) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (-1 < (int)local_30) {\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" (if "if") (parenthesized_expression "(-1 < (int)local_30)" (( "(") (binary_expression "-1 < (int)local_30" (number_literal "-1") (< "<") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) () ")")) (compound_statement "{\n                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;\n              }" ({ "{") (expression_statement "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;" (assignment_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0" (pointer_expression "*(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" (* "*") (cast_expression "(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4))" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar10 + ((int)local_30 - (int)local_d4))" (( "(") (binary_expression "(int)puVar10 + ((int)local_30 - (int)local_d4)" (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10")) (+ "+") (parenthesized_expression "((int)local_30 - (int)local_d4)" (( "(") (binary_expression "(int)local_30 - (int)local_d4" (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30")) (- "-") (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4"))) () ")"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" (if "if") (parenthesized_expression "((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))))" (( "(") (binary_expression "(cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))" (( "(") (binary_expression "0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" (number_literal "0") (< "<") (cast_expression "(int)(local_8c + ((int)~(uint)local_30 >> 0x1f))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(local_8c + ((int)~(uint)local_30 >> 0x1f))" (( "(") (binary_expression "local_8c + ((int)~(uint)local_30 >> 0x1f)" (identifier "local_8c") (+ "+") (parenthesized_expression "((int)~(uint)local_30 >> 0x1f)" (( "(") (binary_expression "(int)~(uint)local_30 >> 0x1f" (cast_expression "(int)~(uint)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (unary_expression "~(uint)local_30" (~ "~") (cast_expression "(uint)local_30" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_30")))) (>> ">>") (number_literal "0x1f")) () ")"))) () ")")))) () ")"))) () ")")) (compound_statement "{\n                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);\n                if (unaff_s4[0xe] == 0) goto LAB_000b908c;\n                goto LAB_000b90c8;\n              }" ({ "{") (expression_statement "iVar35 = (*local_f4)(local_f8,0x11,0,0,0);" (assignment_expression "iVar35 = (*local_f4)(local_f8,0x11,0,0,0)" (identifier "iVar35") (= "=") (call_expression "(*local_f4)(local_f8,0x11,0,0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x11,0,0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x11") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b908c;" (if "if") (parenthesized_expression "(unaff_s4[0xe] == 0)" (( "(") (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b908c;" (goto "goto") (statement_identifier "LAB_000b908c") (; ";"))) (goto_statement "goto LAB_000b90c8;" (goto "goto") (statement_identifier "LAB_000b90c8") (; ";")) (} "}"))) (if_statement "if (unaff_s4[0xe] == 0) goto LAB_000b9084;" (if "if") (parenthesized_expression "(unaff_s4[0xe] == 0)" (( "(") (binary_expression "unaff_s4[0xe] == 0" (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b9084;" (goto "goto") (statement_identifier "LAB_000b9084") (; ";"))) (labeled_statement "LAB_000b97d4:\n              if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" (statement_identifier "LAB_000b97d4") (: ":") (if_statement "if ((local_34 != local_f0) && (local_30 != local_f0)) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" (if "if") (parenthesized_expression "((local_34 != local_f0) && (local_30 != local_f0))" (( "(") (binary_expression "(local_34 != local_f0) && (local_30 != local_f0)" (parenthesized_expression "(local_34 != local_f0)" (( "(") (binary_expression "local_34 != local_f0" (identifier "local_34") (!= "!=") (identifier "local_f0")) () ")")) (&& "&&") (parenthesized_expression "(local_30 != local_f0)" (( "(") (binary_expression "local_30 != local_f0" (identifier "local_30") (!= "!=") (identifier "local_f0")) () ")"))) () ")")) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);\n              }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x1d,local_f0,local_b0,local_dc,local_a4)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x1d") (, ",") (identifier "local_f0") (, ",") (identifier "local_b0") (, ",") (identifier "local_dc") (, ",") (identifier "local_a4") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000b902c:\n              local_d4 = local_b0;" (statement_identifier "LAB_000b902c") (: ":") (expression_statement "local_d4 = local_b0;" (assignment_expression "local_d4 = local_b0" (identifier "local_d4") (= "=") (identifier "local_b0")) (; ";"))) (if_statement "if (cVar2 != '\x01') goto LAB_000b9038;" (if "if") (parenthesized_expression "(cVar2 != '\x01')" (( "(") (binary_expression "cVar2 != '\x01'" (identifier "cVar2") (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (goto_statement "goto LAB_000b9038;" (goto "goto") (statement_identifier "LAB_000b9038") (; ";"))) (} "}")) (else_clause "else {\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" (else "else") (compound_statement "{\nLAB_000b9038:\n              uVar22 = param_1[0xe];\n              param_1[0xe] = uVar22 - 1;\n              local_d4 = (code *)(uVar22 - 1);\n            }" ({ "{") (labeled_statement "LAB_000b9038:\n              uVar22 = param_1[0xe];" (statement_identifier "LAB_000b9038") (: ":") (expression_statement "uVar22 = param_1[0xe];" (assignment_expression "uVar22 = param_1[0xe]" (identifier "uVar22") (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";"))) (expression_statement "param_1[0xe] = uVar22 - 1;" (assignment_expression "param_1[0xe] = uVar22 - 1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_d4 = (code *)(uVar22 - 1);" (assignment_expression "local_d4 = (code *)(uVar22 - 1)" (identifier "local_d4") (= "=") (cast_expression "(code *)(uVar22 - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 - 1)" (( "(") (binary_expression "uVar22 - 1" (identifier "uVar22") (- "-") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (expression_statement "pcVar23 = local_dc;" (assignment_expression "pcVar23 = local_dc" (identifier "pcVar23") (= "=") (identifier "local_dc")) (; ";")) (if_statement "if (local_ec == 0) {\n              pcVar23 = local_e0;\n            }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar23 = local_e0;\n            }" ({ "{") (expression_statement "pcVar23 = local_e0;" (assignment_expression "pcVar23 = local_e0" (identifier "pcVar23") (= "=") (identifier "local_e0")) (; ";")) (} "}"))) (expression_statement "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x32,pcVar23,local_b0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x32,pcVar23,local_b0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x32") (, ",") (identifier "pcVar23") (, ",") (identifier "local_b0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "pcVar23 = local_d4;" (assignment_expression "pcVar23 = local_d4" (identifier "pcVar23") (= "=") (identifier "local_d4")) (; ";")) (goto_statement "goto LAB_000b8340;" (goto "goto") (statement_identifier "LAB_000b8340") (; ";")) (} "}")))) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x4c88" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x4c88")) () ")")))) () ")")) (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (labeled_statement "LAB_000b9014:\n          if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" (statement_identifier "LAB_000b9014") (: ":") (if_statement "if (local_e8 == (code *)0x0) {\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }\n          else if (cVar2 != '\0') goto LAB_000b902c;" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (cVar2 != '\0') goto LAB_000b9784;\n            if (unaff_s4[0xe] != 0) goto LAB_000b911c;\nLAB_000b9084:\n            iVar35 = 0;\nLAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);\nLAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }\n            if (cVar2 != '\0') goto LAB_000b97d4;\n          }" ({ "{") (if_statement "if (cVar2 != '\0') goto LAB_000b9784;" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000b9784;" (goto "goto") (statement_identifier "LAB_000b9784") (; ";"))) (if_statement "if (unaff_s4[0xe] != 0) goto LAB_000b911c;" (if "if") (parenthesized_expression "(unaff_s4[0xe] != 0)" (( "(") (binary_expression "unaff_s4[0xe] != 0" (subscript_expression "unaff_s4[0xe]" (identifier "unaff_s4") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b911c;" (goto "goto") (statement_identifier "LAB_000b911c") (; ";"))) (labeled_statement "LAB_000b9084:\n            iVar35 = 0;" (statement_identifier "LAB_000b9084") (: ":") (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_000b908c:\n            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" (statement_identifier "LAB_000b908c") (: ":") (expression_statement "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7a78))" (( "(") (pointer_expression "*(code *)(PTR_000f5314 + 0x7a78)" (* "*") (cast_expression "(code *)(PTR_000f5314 + 0x7a78)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_000f5314 + 0x7a78)" (( "(") (binary_expression "PTR_000f5314 + 0x7a78" (identifier "PTR_000f5314") (+ "+") (number_literal "0x7a78")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0x61") (, ",") (number_literal "0") (, ",") (identifier "local_d4") (, ",") (identifier "puVar10") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (labeled_statement "LAB_000b90c8:\n            if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" (statement_identifier "LAB_000b90c8") (: ":") (if_statement "if (iVar35 != 0) {\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" (if "if") (parenthesized_expression "(iVar35 != 0)" (( "(") (binary_expression "iVar35 != 0" (identifier "iVar35") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar14 = *(int *)(local_f8 + 0x6c) + -1;\n              if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }\n            }" ({ "{") (expression_statement "iVar14 = *(int *)(local_f8 + 0x6c) + -1;" (assignment_expression "iVar14 = *(int *)(local_f8 + 0x6c) + -1" (identifier "iVar14") (= "=") (binary_expression "*(int *)(local_f8 + 0x6c) + -1" (pointer_expression "*(int *)(local_f8 + 0x6c)" (* "*") (cast_expression "(int *)(local_f8 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x6c)" (( "(") (binary_expression "local_f8 + 0x6c" (identifier "local_f8") (+ "+") (number_literal "0x6c")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar14 == iVar35) {\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }\n              else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" (if "if") (parenthesized_expression "(iVar14 == iVar35)" (( "(") (binary_expression "iVar14 == iVar35" (identifier "iVar14") (== "==") (identifier "iVar35")) () ")")) (compound_statement "{\n                *(int *)(local_f8 + 0x6c) = iVar35;\n              }" ({ "{") (expression_statement "*(int *)(local_f8 + 0x6c) = iVar35;" (assignment_expression "*(int *)(local_f8 + 0x6c) = iVar35" (pointer_expression "*(int *)(local_f8 + 0x6c)" (* "*") (cast_expression "(int *)(local_f8 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x6c)" (( "(") (binary_expression "local_f8 + 0x6c" (identifier "local_f8") (+ "+") (number_literal "0x6c")) () ")")))) (= "=") (identifier "iVar35")) (; ";")) (} "}")) (else_clause "else {\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" (else "else") (compound_statement "{\n                if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }\n                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }\n                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);\n              }" ({ "{") (if_statement "if (-1 < iVar35) {\n                  iVar14 = iVar35;\n                }" (if "if") (parenthesized_expression "(-1 < iVar35)" (( "(") (binary_expression "-1 < iVar35" (number_literal "-1") (< "<") (identifier "iVar35")) () ")")) (compound_statement "{\n                  iVar14 = iVar35;\n                }" ({ "{") (expression_statement "iVar14 = iVar35;" (assignment_expression "iVar14 = iVar35" (identifier "iVar14") (= "=") (identifier "iVar35")) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }\n                else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" (if "if") (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" (* "*") (cast_expression "(char *)(*(int *)local_f8 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_f8 + 0x51)" (( "(") (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" (* "*") (cast_expression "(int *)local_f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_f8"))) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));\n                }" ({ "{") (expression_statement "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));" (assignment_expression "puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" (identifier "puVar19") (= "=") (cast_expression "(undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 * 0x14 + *(int *)(local_f8 + 0x68))" (( "(") (binary_expression "iVar14 * 0x14 + *(int *)(local_f8 + 0x68)" (binary_expression "iVar14 * 0x14" (identifier "iVar14") (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(local_f8 + 0x68)" (* "*") (cast_expression "(int *)(local_f8 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x68)" (( "(") (binary_expression "local_f8 + 0x68" (identifier "local_f8") (+ "+") (number_literal "0x68")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" (else "else") (compound_statement "{\n                  puVar19 = PTR_DAT_000f52bc + 0x5860;\n                }" ({ "{") (expression_statement "puVar19 = PTR_DAT_000f52bc + 0x5860;" (assignment_expression "puVar19 = PTR_DAT_000f52bc + 0x5860" (identifier "puVar19") (= "=") (binary_expression "PTR_DAT_000f52bc + 0x5860" (identifier "PTR_DAT_000f52bc") (+ "+") (number_literal "0x5860"))) (; ";")) (} "}")))) (expression_statement "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);" (assignment_expression "*(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c)" (pointer_expression "*(int *)(puVar19 + 8)" (* "*") (cast_expression "(int *)(puVar19 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 8)" (( "(") (binary_expression "puVar19 + 8" (identifier "puVar19") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(int *)(local_f8 + 0x6c)" (* "*") (cast_expression "(int *)(local_f8 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x6c)" (( "(") (binary_expression "local_f8 + 0x6c" (identifier "local_f8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (cVar2 != '\0') goto LAB_000b97d4;" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000b97d4;" (goto "goto") (statement_identifier "LAB_000b97d4") (; ";"))) (} "}")) (else_clause "else if (cVar2 != '\0') goto LAB_000b902c;" (else "else") (if_statement "if (cVar2 != '\0') goto LAB_000b902c;" (if "if") (parenthesized_expression "(cVar2 != '\0')" (( "(") (binary_expression "cVar2 != '\0'" (identifier "cVar2") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_000b902c;" (goto "goto") (statement_identifier "LAB_000b902c") (; ";")))))) (labeled_statement "LAB_000b911c:\n          if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" (statement_identifier "LAB_000b911c") (: ":") (if_statement "if (local_ec == 0) {\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }\n            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);\n            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n            local_a0 = 0;\nLAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;\nLAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }\n            goto LAB_000b837c;\n          }" ({ "{") (if_statement "if (pcVar34 != (code *)0x0) {\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" (if "if") (parenthesized_expression "(pcVar34 != (code *)0x0)" (( "(") (binary_expression "pcVar34 != (code *)0x0" (identifier "pcVar34") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_d4 = (code *)(param_1[0xe] - 1);\n              param_1[0xe] = (uint)local_d4;\n              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);\n              local_a0 = *(int *)(local_f8 + 0x6c);\n              if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              goto LAB_000b916c;\n            }" ({ "{") (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" (identifier "local_d4") (= "=") (cast_expression "(code *)(param_1[0xe] - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xe] - 1)" (( "(") (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(uint)local_d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d4"))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x25") (, ",") (identifier "local_cc") (, ",") (identifier "local_b0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" (identifier "local_a0") (= "=") (pointer_expression "*(int *)(local_f8 + 0x6c)" (* "*") (cast_expression "(int *)(local_f8 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x6c)" (( "(") (binary_expression "local_f8 + 0x6c" (identifier "local_f8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (if_statement "if (local_e8 == (code *)0x0) {\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);\n                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" ({ "{") (expression_statement "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0);" (call_expression "(*local_f4)(local_f8,0x7f,local_cc,local_e0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x7f,local_cc,local_e0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7f") (, ",") (identifier "local_cc") (, ",") (identifier "local_e0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x20") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_e0") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000b916c;" (goto "goto") (statement_identifier "LAB_000b916c") (; ";")) (} "}"))) (expression_statement "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);" (assignment_expression "local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (identifier "local_d4") (= "=") (cast_expression "(code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x2a,local_80,local_b0,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x2a") (, ",") (identifier "local_80") (, ",") (identifier "local_b0") (, ",") (identifier "local_e0") () ")"))))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x20") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_e0") () ")"))) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000b9a58:\n            if (local_d8 == (code *)0x0) goto LAB_000b839c;" (statement_identifier "LAB_000b9a58") (: ":") (if_statement "if (local_d8 == (code *)0x0) goto LAB_000b839c;" (if "if") (parenthesized_expression "(local_d8 == (code *)0x0)" (( "(") (binary_expression "local_d8 == (code *)0x0" (identifier "local_d8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b839c;" (goto "goto") (statement_identifier "LAB_000b839c") (; ";")))) (labeled_statement "LAB_000b8358:\n            if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" (statement_identifier "LAB_000b8358") (: ":") (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" (if "if") (parenthesized_expression "(param_1[2] != 0)" (( "(") (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" (* "*") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7228" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7228")) () ")")))) () ")")) (argument_list "(param_1,local_b4,local_c8)" (( "(") (identifier "param_1") (, ",") (identifier "local_b4") (, ",") (identifier "local_c8") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_000b837c;" (goto "goto") (statement_identifier "LAB_000b837c") (; ";")) (} "}")))) (expression_statement "local_d4 = (code *)(param_1[0xe] - 1);" (assignment_expression "local_d4 = (code *)(param_1[0xe] - 1)" (identifier "local_d4") (= "=") (cast_expression "(code *)(param_1[0xe] - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xe] - 1)" (( "(") (binary_expression "param_1[0xe] - 1" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "param_1[0xe] = (uint)local_d4;" (assignment_expression "param_1[0xe] = (uint)local_d4" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (cast_expression "(uint)local_d4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_d4"))) (; ";")) (expression_statement "(*local_f4)(local_f8,0x25,local_cc,local_b0,0);" (call_expression "(*local_f4)(local_f8,0x25,local_cc,local_b0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x25,local_cc,local_b0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x25") (, ",") (identifier "local_cc") (, ",") (identifier "local_b0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_a0 = *(int *)(local_f8 + 0x6c);" (assignment_expression "local_a0 = *(int *)(local_f8 + 0x6c)" (identifier "local_a0") (= "=") (pointer_expression "*(int *)(local_f8 + 0x6c)" (* "*") (cast_expression "(int *)(local_f8 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + 0x6c)" (( "(") (binary_expression "local_f8 + 0x6c" (identifier "local_f8") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (if_statement "if (pcVar34 == (code *)0x0) {\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);\n            goto LAB_000b9a58;\n          }" ({ "{") (expression_statement "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0);" (call_expression "(*local_f4)(local_f8,0x7e,local_cc,local_dc,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x7e,local_cc,local_dc,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7e") (, ",") (identifier "local_cc") (, ",") (identifier "local_dc") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x1d") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_dc") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_000b9a58;" (goto "goto") (statement_identifier "LAB_000b9a58") (; ";")) (} "}"))) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_e8 == (code *)0x0) {\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }\n            (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);\n          }" ({ "{") (for_statement "for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" (for "for") (( "(") (; ";") (binary_expression "iVar35 < local_d0" (identifier "iVar35") (< "<") (identifier "local_d0")) (; ";") (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);\n            }" ({ "{") (expression_statement "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x59,local_cc,iVar35,local_9c + iVar35)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x59") (, ",") (identifier "local_cc") (, ",") (identifier "iVar35") (, ",") (binary_expression "local_9c + iVar35" (identifier "local_9c") (+ "+") (identifier "iVar35")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_9c,local_d0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x1d") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_9c") (, ",") (identifier "local_d0") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000b916c:\n          if (local_d8 != (code *)0x0) goto LAB_000b9174;" (statement_identifier "LAB_000b916c") (: ":") (if_statement "if (local_d8 != (code *)0x0) goto LAB_000b9174;" (if "if") (parenthesized_expression "(local_d8 != (code *)0x0)" (( "(") (binary_expression "local_d8 != (code *)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b9174;" (goto "goto") (statement_identifier "LAB_000b9174") (; ";")))) (} "}")) (else_clause "else {\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" (else "else") (compound_statement "{\n          if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }\n          local_a4 = local_d0;\n          local_dc = (code *)(param_1[0xb] + 1);\n          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;\n          param_1[0xb] = (uint)local_98;\n          if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }\n          cVar2 = '\0';\n          puVar20 = (uint *)param_1[0x1d];\n          if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }\n          local_7c = 0;\n          local_88 = 1;\n          *(undefined1 *)(puVar20 + 5) = 1;\n          local_9c = local_dc;\nLAB_000b8330:\n          pcVar23 = local_b0;\n          if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }\nLAB_000b8340:\n          local_d4 = pcVar23;\n          local_a0 = 0;\n          if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }\n        }" ({ "{") (if_statement "if (local_ec == 0) {\n            local_d0 = 0;\n          }\n          else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_d0 = 0;\n          }" ({ "{") (expression_statement "local_d0 = 0;" (assignment_expression "local_d0 = 0" (identifier "local_d0") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" (else "else") (compound_statement "{\n            local_d0 = (int)*(short *)(local_ec + 0x32);\n          }" ({ "{") (expression_statement "local_d0 = (int)*(short *)(local_ec + 0x32);" (assignment_expression "local_d0 = (int)*(short *)(local_ec + 0x32)" (identifier "local_d0") (= "=") (cast_expression "(int)*(short *)(local_ec + 0x32)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(local_ec + 0x32)" (* "*") (cast_expression "(short *)(local_ec + 0x32)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_ec + 0x32)" (( "(") (binary_expression "local_ec + 0x32" (identifier "local_ec") (+ "+") (number_literal "0x32")) () ")")))))) (; ";")) (} "}")))) (expression_statement "local_a4 = local_d0;" (assignment_expression "local_a4 = local_d0" (identifier "local_a4") (= "=") (identifier "local_d0")) (; ";")) (expression_statement "local_dc = (code *)(param_1[0xb] + 1);" (assignment_expression "local_dc = (code *)(param_1[0xb] + 1)" (identifier "local_dc") (= "=") (cast_expression "(code *)(param_1[0xb] + 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[0xb] + 1)" (( "(") (binary_expression "param_1[0xb] + 1" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;" (assignment_expression "local_98 = pcVar34 + param_1[0xb] + local_d0 + 1" (identifier "local_98") (= "=") (binary_expression "pcVar34 + param_1[0xb] + local_d0 + 1" (binary_expression "pcVar34 + param_1[0xb] + local_d0" (binary_expression "pcVar34 + param_1[0xb]" (identifier "pcVar34") (+ "+") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (+ "+") (identifier "local_d0")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xb] = (uint)local_98;" (assignment_expression "param_1[0xb] = (uint)local_98" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)local_98" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_98"))) (; ";")) (if_statement "if (local_100 == 0) {\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }\n          else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" (if "if") (parenthesized_expression "(local_100 == 0)" (( "(") (binary_expression "local_100 == 0" (identifier "local_100") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar35 = 0;\n            if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            local_cc = (code *)param_1[10];\n            pcVar23 = pcVar34 + iVar35 + local_d0;\n            param_1[10] = (uint)(local_cc + 1);\n            puVar19 = PTR_LAB_000f52e8;\n            if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }\n            local_f4 = (code *)(puVar19 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b9260;\n            if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }\n            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);\n          }" ({ "{") (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_e8 != (code *)0x0) {\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" (if "if") (parenthesized_expression "(local_e8 != (code *)0x0)" (( "(") (binary_expression "local_e8 != (code *)0x0" (identifier "local_e8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" ({ "{") (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}"))) (expression_statement "local_cc = (code *)param_1[10];" (assignment_expression "local_cc = (code *)param_1[10]" (identifier "local_cc") (= "=") (cast_expression "(code *)param_1[10]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")))) (; ";")) (expression_statement "pcVar23 = pcVar34 + iVar35 + local_d0;" (assignment_expression "pcVar23 = pcVar34 + iVar35 + local_d0" (identifier "pcVar23") (= "=") (binary_expression "pcVar34 + iVar35 + local_d0" (binary_expression "pcVar34 + iVar35" (identifier "pcVar34") (+ "+") (identifier "iVar35")) (+ "+") (identifier "local_d0"))) (; ";")) (expression_statement "param_1[10] = (uint)(local_cc + 1);" (assignment_expression "param_1[10] = (uint)(local_cc + 1)" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (call_expression "(uint)(local_cc + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_cc + 1)" (( "(") (binary_expression "local_cc + 1" (identifier "local_cc") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" (identifier "puVar19") (= "=") (identifier "PTR_LAB_000f52e8")) (; ";")) (if_statement "if (local_ec == 0) {\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }\n            else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);\n            }" ({ "{") (expression_statement "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" (identifier "local_9c") (= "=") (cast_expression "(code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))\n                                           (local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,100,local_cc,pcVar23,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "100") (, ",") (identifier "local_cc") (, ",") (identifier "pcVar23") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" (else "else") (compound_statement "{\n              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);\n              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);\n              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);\n              if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }\n            }" ({ "{") (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (expression_statement "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);" (call_expression "(*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x48") (, ",") (number_literal "0") (, ",") (identifier "local_dc") (, ",") (binary_expression "local_dc + local_d0 + -1" (binary_expression "local_dc + local_d0" (identifier "local_dc") (+ "+") (identifier "local_d0")) (+ "+") (number_literal "-1")) () ")"))) (; ";")) (expression_statement "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);" (assignment_expression "local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" (identifier "local_9c") (= "=") (cast_expression "(code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar36)(local_f8,100,local_cc,pcVar23,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,100,local_cc,pcVar23,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "100") (, ",") (identifier "local_cc") (, ",") (identifier "pcVar23") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);" (assignment_expression "iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" (identifier "iVar35") (= "=") (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1400))" (( "(") (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1400)" (* "*") (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1400)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_FUN_000f5300 + -0x1400)" (( "(") (binary_expression "PTR_FUN_000f5300 + -0x1400" (identifier "PTR_FUN_000f5300") (+ "+") (number_literal "-0x1400")) () ")")))) () ")")) (argument_list "(param_1,local_ec)" (( "(") (identifier "param_1") (, ",") (identifier "local_ec") () ")")))) (; ";")) (if_statement "if (iVar35 != 0) {\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" (if "if") (parenthesized_expression "(iVar35 != 0)" (( "(") (binary_expression "iVar35 != 0" (identifier "iVar35") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);\n                *(short *)(iVar35 + 8) = (short)pcVar23;\n                (*pcVar36)(local_f8,iVar35,0xfffffff7);\n              }" ({ "{") (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x280c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x280c)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x280c" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x280c")) () ")")))) (; ";")) (expression_statement "*(short *)(iVar35 + 8) = (short)pcVar23;" (assignment_expression "*(short *)(iVar35 + 8) = (short)pcVar23" (pointer_expression "*(short *)(iVar35 + 8)" (* "*") (cast_expression "(short *)(iVar35 + 8)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 + 8)" (( "(") (binary_expression "iVar35 + 8" (identifier "iVar35") (+ "+") (number_literal "8")) () ")")))) (= "=") (cast_expression "(short)pcVar23" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "pcVar23"))) (; ";")) (expression_statement "(*pcVar36)(local_f8,iVar35,0xfffffff7);" (call_expression "(*pcVar36)(local_f8,iVar35,0xfffffff7)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,iVar35,0xfffffff7)" (( "(") (identifier "local_f8") (, ",") (identifier "iVar35") (, ",") (number_literal "0xfffffff7") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_f4 = (code *)(puVar19 + -0x47a8);" (assignment_expression "local_f4 = (code *)(puVar19 + -0x47a8)" (identifier "local_f4") (= "=") (cast_expression "(code *)(puVar19 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x47a8)" (( "(") (binary_expression "puVar19 + -0x47a8" (identifier "puVar19") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b9260;" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b9260;" (goto "goto") (statement_identifier "LAB_000b9260") (; ";"))) (if_statement "if (local_e8 != (code *)0x0) {\n              local_f0 = local_cc;\n            }" (if "if") (parenthesized_expression "(local_e8 != (code *)0x0)" (( "(") (binary_expression "local_e8 != (code *)0x0" (identifier "local_e8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              local_f0 = local_cc;\n            }" ({ "{") (expression_statement "local_f0 = local_cc;" (assignment_expression "local_f0 = local_cc" (identifier "local_f0") (= "=") (identifier "local_cc")) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))\n                      (param_1,local_cc,local_ec,param_3,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x3ed4")) () ")")))) () ")")) (argument_list "(param_1,local_cc,local_ec,param_3,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "local_cc") (, ",") (identifier "local_ec") (, ",") (identifier "param_3") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" (else "else") (compound_statement "{\n            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;\n            local_cc = (code *)0x0;\n          }" ({ "{") (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7d5c;" (goto "goto") (statement_identifier "LAB_000b7d5c") (; ";"))) (expression_statement "local_cc = (code *)0x0;" (assignment_expression "local_cc = (code *)0x0" (identifier "local_cc") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "cVar2 = '\0';" (assignment_expression "cVar2 = '\0'" (identifier "cVar2") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar20 = (uint *)param_1[0x1d];" (assignment_expression "puVar20 = (uint *)param_1[0x1d]" (identifier "puVar20") (= "=") (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n            puVar20 = param_1;\n          }" (if "if") (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" (( "(") (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar20 = param_1;\n          }" ({ "{") (expression_statement "puVar20 = param_1;" (assignment_expression "puVar20 = param_1" (identifier "puVar20") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "local_7c = 0;" (assignment_expression "local_7c = 0" (identifier "local_7c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_88 = 1;" (assignment_expression "local_88 = 1" (identifier "local_88") (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined1 *)(puVar20 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar20 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar20 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar20 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 5)" (( "(") (binary_expression "puVar20 + 5" (identifier "puVar20") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_9c = local_dc;" (assignment_expression "local_9c = local_dc" (identifier "local_9c") (= "=") (identifier "local_dc")) (; ";")) (labeled_statement "LAB_000b8330:\n          pcVar23 = local_b0;" (statement_identifier "LAB_000b8330") (: ":") (expression_statement "pcVar23 = local_b0;" (assignment_expression "pcVar23 = local_b0" (identifier "pcVar23") (= "=") (identifier "local_b0")) (; ";"))) (if_statement "if (local_100 == 0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" (if "if") (parenthesized_expression "(local_100 == 0)" (( "(") (binary_expression "local_100 == 0" (identifier "local_100") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;\n            goto LAB_000b9014;\n          }" ({ "{") (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "local_f4") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b8ff0;" (goto "goto") (statement_identifier "LAB_000b8ff0") (; ";"))) (goto_statement "goto LAB_000b9014;" (goto "goto") (statement_identifier "LAB_000b9014") (; ";")) (} "}"))) (labeled_statement "LAB_000b8340:\n          local_d4 = pcVar23;" (statement_identifier "LAB_000b8340") (: ":") (expression_statement "local_d4 = pcVar23;" (assignment_expression "local_d4 = pcVar23" (identifier "local_d4") (= "=") (identifier "pcVar23")) (; ";"))) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_d8 != (code *)0x0) {\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" (if "if") (parenthesized_expression "(local_d8 != (code *)0x0)" (( "(") (binary_expression "local_d8 != (code *)0x0" (identifier "local_d8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n            if (pcVar34 == (code *)0x0) goto LAB_000b8358;\nLAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);\nLAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);\n          }" ({ "{") (expression_statement "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "local_f4") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (if_statement "if (pcVar34 == (code *)0x0) goto LAB_000b8358;" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b8358;" (goto "goto") (statement_identifier "LAB_000b8358") (; ";"))) (labeled_statement "LAB_000b9174:\n            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" (statement_identifier "LAB_000b9174") (: ":") (expression_statement "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);" (call_expression "(*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0x59,local_cc,local_ac,local_c8)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x59") (, ",") (identifier "local_cc") (, ",") (identifier "local_ac") (, ",") (identifier "local_c8") () ")"))) (; ";"))) (labeled_statement "LAB_000b837c:\n            (*local_f4)(local_f8,0xf,local_c8,0,0);" (statement_identifier "LAB_000b837c") (: ":") (expression_statement "(*local_f4)(local_f8,0xf,local_c8,0,0);" (call_expression "(*local_f4)(local_f8,0xf,local_c8,0,0)" (parenthesized_expression "(*local_f4)" (( "(") (pointer_expression "*local_f4" (* "*") (identifier "local_f4")) () ")")) (argument_list "(local_f8,0xf,local_c8,0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0xf") (, ",") (identifier "local_c8") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (} "}"))) (} "}")))) (labeled_statement "LAB_000b839c:\n        if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" (statement_identifier "LAB_000b839c") (: ":") (if_statement "if (local_84 == 0) {\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }\n        else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" (if "if") (parenthesized_expression "(local_84 == 0)" (( "(") (binary_expression "local_84 == 0" (identifier "local_84") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar31 != 0) goto LAB_000b8840;\n          if (local_e4 != (uint *)0x0) goto LAB_000b8838;\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n        }" ({ "{") (if_statement "if (iVar31 != 0) goto LAB_000b8840;" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b8840;" (goto "goto") (statement_identifier "LAB_000b8840") (; ";"))) (if_statement "if (local_e4 != (uint *)0x0) goto LAB_000b8838;" (if "if") (parenthesized_expression "(local_e4 != (uint *)0x0)" (( "(") (binary_expression "local_e4 != (uint *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b8838;" (goto "goto") (statement_identifier "LAB_000b8838") (; ";"))) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" (identifier "local_b4") (= "=") (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" (( "(") (binary_expression "PTR_LAB_000f5324 + -0x2fdc" (identifier "PTR_LAB_000f5324") (+ "+") (number_literal "-0x2fdc")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" (else "else") (compound_statement "{\n          uVar22 = 0;\n          if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }\n          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);\n          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);\n          puVar19 = PTR_LAB_000f52e8;\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }\n          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }\n        }" ({ "{") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar31 != 0) {\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }\n          }" ({ "{") (labeled_statement "LAB_000b8840:\n            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" (statement_identifier "LAB_000b8840") (: ":") (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {\nLAB_000b8838:\n              uVar22 = 0;\n            }\n            else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" (if "if") (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) == 0)" (( "(") (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) == 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" (( "(") (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" (* "*") (cast_expression "(uint *)(*param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x24)" (( "(") (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x4000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000b8838:\n              uVar22 = 0;\n            }" ({ "{") (labeled_statement "LAB_000b8838:\n              uVar22 = 0;" (statement_identifier "LAB_000b8838") (: ":") (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" (identifier "uVar22") (= "=") (number_literal "0")) (; ";"))) (} "}")) (else_clause "else {\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" (else "else") (compound_statement "{\n              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);\n            }" ({ "{") (expression_statement "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);" (assignment_expression "uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" (identifier "uVar22") (= "=") (call_expression "(*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x7450))" (( "(") (pointer_expression "*(code *)(PTR_000f5314 + 0x7450)" (* "*") (cast_expression "(code *)(PTR_000f5314 + 0x7450)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_000f5314 + 0x7450)" (( "(") (binary_expression "PTR_000f5314 + 0x7450" (identifier "PTR_000f5314") (+ "+") (number_literal "0x7450")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") () ")")))) (; ";")) (} "}"))))) (} "}"))) (expression_statement "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);" (assignment_expression "local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc)" (identifier "local_b4") (= "=") (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2fdc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5324 + -0x2fdc)" (( "(") (binary_expression "PTR_LAB_000f5324 + -0x2fdc" (identifier "PTR_LAB_000f5324") (+ "+") (number_literal "-0x2fdc")) () ")")))) (; ";")) (expression_statement "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);" (assignment_expression "uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" (identifier "uVar25") (= "=") (call_expression "FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" (identifier "FUN_000bd024") (argument_list "(param_1,local_e4,param_3,0,3,unaff_s4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "local_e4") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (number_literal "3") (, ",") (identifier "unaff_s4") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "puVar19 = PTR_LAB_000f52e8;" (assignment_expression "puVar19 = PTR_LAB_000f52e8" (identifier "puVar19") (= "=") (identifier "PTR_LAB_000f52e8")) (; ";")) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" (if "if") (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" (( "(") (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" (number_literal "0") (< "<") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (compound_statement "{\n            local_f4 = (code *)0x0;\n            uVar33 = 0;\n            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));\n          }" ({ "{") (expression_statement "local_f4 = (code *)0x0;" (assignment_expression "local_f4 = (code *)0x0" (identifier "local_f4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar33 = 0;" (assignment_expression "uVar33 = 0" (identifier "uVar33") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);" (assignment_expression "pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74)" (identifier "pcVar23") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + 0xf74)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0xf74)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0xf74" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0xf74")) () ")")))) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7574" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7574")) () ")")))) (; ";")) (do_statement "do {\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));" (do "do") (compound_statement "{\n              iVar35 = (int)(short)uVar33;\n              if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }\n              if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }\n              uVar33 = uVar33 + 1;\n              local_f4 = (code *)((int)local_f4 + 0x14);\n            }" ({ "{") (expression_statement "iVar35 = (int)(short)uVar33;" (assignment_expression "iVar35 = (int)(short)uVar33" (identifier "iVar35") (= "=") (cast_expression "(int)(short)uVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(short)uVar33" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar33")))) (; ";")) (if_statement "if ((unaff_s4[9] & 0x20) != 0) {\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" (if "if") (parenthesized_expression "((unaff_s4[9] & 0x20) != 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x20) != 0" (parenthesized_expression "(unaff_s4[9] & 0x20)" (( "(") (binary_expression "unaff_s4[9] & 0x20" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar35 = (*pcVar23)(unaff_s4,iVar35);\n              }" ({ "{") (expression_statement "iVar35 = (*pcVar23)(unaff_s4,iVar35);" (assignment_expression "iVar35 = (*pcVar23)(unaff_s4,iVar35)" (identifier "iVar35") (= "=") (call_expression "(*pcVar23)(unaff_s4,iVar35)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(unaff_s4,iVar35)" (( "(") (identifier "unaff_s4") (, ",") (identifier "iVar35") () ")")))) (; ";")) (} "}"))) (if_statement "if (((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }\n              else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" (if "if") (parenthesized_expression "(((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))))" (( "(") (binary_expression "((uVar25 | uVar22) == 0xffffffff) ||\n                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" (parenthesized_expression "((uVar25 | uVar22) == 0xffffffff)" (( "(") (binary_expression "(uVar25 | uVar22) == 0xffffffff" (parenthesized_expression "(uVar25 | uVar22)" (( "(") (binary_expression "uVar25 | uVar22" (identifier "uVar25") (| "|") (identifier "uVar22")) () ")")) (== "==") (number_literal "0xffffffff")) () ")")) (|| "||") (parenthesized_expression "((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))" (( "(") (parenthesized_expression "(((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0))" (( "(") (binary_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||\n                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" (parenthesized_expression "((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0))" (( "(") (binary_expression "(int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" (binary_expression "(int)uVar33 < 0x20" (cast_expression "(int)uVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar33")) (< "<") (number_literal "0x20")) (&& "&&") (parenthesized_expression "((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)" (( "(") (binary_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0" (parenthesized_expression "(1 << (uVar33 & 0x1f) & (uVar25 | uVar22))" (( "(") (binary_expression "1 << (uVar33 & 0x1f) & (uVar25 | uVar22)" (binary_expression "1 << (uVar33 & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar33 & 0x1f)" (( "(") (binary_expression "uVar33 & 0x1f" (identifier "uVar33") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (parenthesized_expression "(uVar25 | uVar22)" (( "(") (binary_expression "uVar25 | uVar22" (identifier "uVar25") (| "|") (identifier "uVar22")) () ")"))) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)" (( "(") (binary_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0" (parenthesized_expression "(*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1)" (( "(") (binary_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1" (pointer_expression "*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" (* "*") (cast_expression "(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4[1] + (int)local_f4 + 0x10)" (( "(") (binary_expression "unaff_s4[1] + (int)local_f4 + 0x10" (binary_expression "unaff_s4[1] + (int)local_f4" (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")) (+ "+") (cast_expression "(int)local_f4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f4"))) (+ "+") (number_literal "0x10")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);\n              }" ({ "{") (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94)" (( "(") (identifier "local_f8") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "uVar33") (, ",") (binary_expression "iVar35 + local_94" (identifier "iVar35") (+ "+") (identifier "local_94")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" (else "else") (compound_statement "{\n                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);\n              }" ({ "{") (expression_statement "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);" (call_expression "(*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0)" (parenthesized_expression "(*(code *)(puVar19 + -0x47a8))" (( "(") (pointer_expression "*(code *)(puVar19 + -0x47a8)" (* "*") (cast_expression "(code *)(puVar19 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + -0x47a8)" (( "(") (binary_expression "puVar19 + -0x47a8" (identifier "puVar19") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x48,0,iVar35 + local_94,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x48") (, ",") (number_literal "0") (, ",") (binary_expression "iVar35 + local_94" (identifier "iVar35") (+ "+") (identifier "local_94")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar33 = uVar33 + 1;" (assignment_expression "uVar33 = uVar33 + 1" (identifier "uVar33") (= "=") (binary_expression "uVar33 + 1" (identifier "uVar33") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_f4 = (code *)((int)local_f4 + 0x14);" (assignment_expression "local_f4 = (code *)((int)local_f4 + 0x14)" (identifier "local_f4") (= "=") (cast_expression "(code *)((int)local_f4 + 0x14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f4 + 0x14)" (( "(") (binary_expression "(int)local_f4 + 0x14" (cast_expression "(int)local_f4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f4")) (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a))" (( "(") (binary_expression "(int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)uVar33" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar33")) (< "<") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) () ")")) (; ";")) (} "}"))) (if_statement "if ((local_d8 == (code *)0x0) && (local_ec == 0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" (if "if") (parenthesized_expression "((local_d8 == (code *)0x0) && (local_ec == 0))" (( "(") (binary_expression "(local_d8 == (code *)0x0) && (local_ec == 0)" (parenthesized_expression "(local_d8 == (code *)0x0)" (( "(") (binary_expression "local_d8 == (code *)0x0" (identifier "local_d8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);\n          }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x4d,local_e0,local_c8,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x4d") (, ",") (identifier "local_e0") (, ",") (identifier "local_c8") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))))) (expression_statement "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);" (assignment_expression "uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" (identifier "uVar22") (= "=") (call_expression "(*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" (parenthesized_expression "(*local_b4)" (( "(") (pointer_expression "*local_b4" (* "*") (identifier "local_b4")) () ")")) (argument_list "(param_1,local_e4,param_3,1,1,unaff_s4,param_5)" (( "(") (identifier "param_1") (, ",") (identifier "local_e4") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (number_literal "1") (, ",") (identifier "unaff_s4") (, ",") (identifier "param_5") () ")")))) (; ";")) (expression_statement "puVar19 = PTR_LAB_000f5308;" (assignment_expression "puVar19 = PTR_LAB_000f5308" (identifier "puVar19") (= "=") (identifier "PTR_LAB_000f5308")) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (if_statement "if (0 < iVar35) {\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" (if "if") (parenthesized_expression "(0 < iVar35)" (( "(") (binary_expression "0 < iVar35" (number_literal "0") (< "<") (identifier "iVar35")) () ")")) (compound_statement "{\n          uVar25 = 0;\n          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n          pcVar23 = local_90;\n          do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);\n        }" ({ "{") (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7574" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7574")) () ")")))) (; ";")) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" (identifier "pcVar23") (= "=") (identifier "local_90")) (; ";")) (do_statement "do {\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          } while ((int)uVar25 < iVar35);" (do "do") (compound_statement "{\n            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }\n            uVar25 = uVar25 + 1;\n            pcVar23 = pcVar23 + 1;\n          }" ({ "{") (if_statement "if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }\n            else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" (if "if") (parenthesized_expression "(uVar25 == (int)*(short *)(unaff_s4 + 10))" (( "(") (binary_expression "uVar25 == (int)*(short *)(unaff_s4 + 10)" (identifier "uVar25") (== "==") (cast_expression "(int)*(short *)(unaff_s4 + 10)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)(unaff_s4 + 10)" (* "*") (cast_expression "(short *)(unaff_s4 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4 + 10)" (( "(") (binary_expression "unaff_s4 + 10" (identifier "unaff_s4") (+ "+") (number_literal "10")) () ")")))))) () ")")) (compound_statement "{\nLAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);\n              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            }" ({ "{") (labeled_statement "LAB_000b8640:\n              (*pcVar13)(local_f8,0x48,0,pcVar23,0);" (statement_identifier "LAB_000b8640") (: ":") (expression_statement "(*pcVar13)(local_f8,0x48,0,pcVar23,0);" (call_expression "(*pcVar13)(local_f8,0x48,0,pcVar23,0)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(local_f8,0x48,0,pcVar23,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x48") (, ",") (number_literal "0") (, ",") (identifier "pcVar23") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" (else "else") (compound_statement "{\n              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }\n            }" ({ "{") (expression_statement "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);" (assignment_expression "uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" (* "*") (cast_expression "(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4[1] + uVar25 * 0x14 + 0x10)" (( "(") (binary_expression "unaff_s4[1] + uVar25 * 0x14 + 0x10" (binary_expression "unaff_s4[1] + uVar25 * 0x14" (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]")) (+ "+") (binary_expression "uVar25 * 0x14" (identifier "uVar25") (* "*") (number_literal "0x14"))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar4 & 0x60) == 0) {\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }\n              else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" (if "if") (parenthesized_expression "((uVar4 & 0x60) == 0)" (( "(") (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" (( "(") (binary_expression "uVar4 & 0x60" (identifier "uVar4") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar14 = piVar9[uVar25];\n                if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }\n              }" ({ "{") (expression_statement "iVar14 = piVar9[uVar25];" (assignment_expression "iVar14 = piVar9[uVar25]" (identifier "iVar14") (= "=") (subscript_expression "piVar9[uVar25]" (identifier "piVar9") ([ "[") (identifier "uVar25") (] "]"))) (; ";")) (if_statement "if (iVar14 < 0) {\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }\n                else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" (if "if") (parenthesized_expression "(iVar14 < 0)" (( "(") (binary_expression "iVar14 < 0" (identifier "iVar14") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;\n                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  local_88 = 0;\n                }" ({ "{") (if_statement "if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;" (if "if") (parenthesized_expression "((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0))" (( "(") (binary_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&\n                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" (parenthesized_expression "(((local_64 & 1) != 0) && ((int)uVar25 < 0x20))" (( "(") (binary_expression "((local_64 & 1) != 0) && ((int)uVar25 < 0x20)" (parenthesized_expression "((local_64 & 1) != 0)" (( "(") (binary_expression "(local_64 & 1) != 0" (parenthesized_expression "(local_64 & 1)" (( "(") (binary_expression "local_64 & 1" (identifier "local_64") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((int)uVar25 < 0x20)" (( "(") (binary_expression "(int)uVar25 < 0x20" (cast_expression "(int)uVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar25")) (< "<") (number_literal "0x20")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((uVar22 >> (uVar25 & 0x1f) & 1) == 0)" (( "(") (binary_expression "(uVar22 >> (uVar25 & 0x1f) & 1) == 0" (parenthesized_expression "(uVar22 >> (uVar25 & 0x1f) & 1)" (( "(") (binary_expression "uVar22 >> (uVar25 & 0x1f) & 1" (binary_expression "uVar22 >> (uVar25 & 0x1f)" (identifier "uVar22") (>> ">>") (parenthesized_expression "(uVar25 & 0x1f)" (( "(") (binary_expression "uVar25 & 0x1f" (identifier "uVar25") (& "&") (number_literal "0x1f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_000b8640;" (goto "goto") (statement_identifier "LAB_000b8640") (; ";"))) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,unaff_s4,local_f0,uVar25,pcVar23)" (( "(") (identifier "local_f8") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "uVar25") (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "local_88 = 0;" (assignment_expression "local_88 = 0" (identifier "local_88") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" (else "else") (if_statement "if (pcVar34 == (code *)0x0) {\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }\n                else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" (if "if") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }\n                }" ({ "{") (if_statement "if (param_1[2] != 0) {\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" (if "if") (parenthesized_expression "(param_1[2] != 0)" (( "(") (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);\n                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                  }" ({ "{") (expression_statement "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);" (call_expression "(*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23)" (parenthesized_expression "(*(code *)(puVar19 + 0x7228))" (( "(") (pointer_expression "*(code *)(puVar19 + 0x7228)" (* "*") (cast_expression "(code *)(puVar19 + 0x7228)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x7228)" (( "(") (binary_expression "puVar19 + 0x7228" (identifier "puVar19") (+ "+") (number_literal "0x7228")) () ")")))) () ")")) (argument_list "(param_1,param_3[iVar14 * 4 + 1],pcVar23)" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_3[iVar14 * 4 + 1]" (identifier "param_3") ([ "[") (binary_expression "iVar14 * 4 + 1" (binary_expression "iVar14 * 4" (identifier "iVar14") (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (] "]")) (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" (else "else") (compound_statement "{\n                  iVar15 = local_d0;\n                  if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }\n                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);\n                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                }" ({ "{") (expression_statement "iVar15 = local_d0;" (assignment_expression "iVar15 = local_d0" (identifier "iVar15") (= "=") (identifier "local_d0")) (; ";")) (if_statement "if (local_e8 != (code *)0x0) {\n                    iVar15 = iVar35;\n                  }" (if "if") (parenthesized_expression "(local_e8 != (code *)0x0)" (( "(") (binary_expression "local_e8 != (code *)0x0" (identifier "local_e8") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    iVar15 = iVar35;\n                  }" ({ "{") (expression_statement "iVar15 = iVar35;" (assignment_expression "iVar15 = iVar35" (identifier "iVar15") (= "=") (identifier "iVar35")) (; ";")) (} "}"))) (expression_statement "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);" (call_expression "(*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x59") (, ",") (identifier "local_cc") (, ",") (binary_expression "iVar14 + iVar15" (identifier "iVar14") (+ "+") (identifier "iVar15")) (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}")))))) (} "}")) (else_clause "else if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" (else "else") (if_statement "if ((uVar4 & 0x20) != 0) {\n                pcVar23 = pcVar23 + -1;\n              }" (if "if") (parenthesized_expression "((uVar4 & 0x20) != 0)" (( "(") (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" (( "(") (binary_expression "uVar4 & 0x20" (identifier "uVar4") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar23 = pcVar23 + -1;\n              }" ({ "{") (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + -1" (identifier "pcVar23") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))))) (} "}")))) (expression_statement "uVar25 = uVar25 + 1;" (assignment_expression "uVar25 = uVar25 + 1" (identifier "uVar25") (= "=") (binary_expression "uVar25 + 1" (identifier "uVar25") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int)uVar25 < iVar35)" (( "(") (binary_expression "(int)uVar25 < iVar35" (cast_expression "(int)uVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar25")) (< "<") (identifier "iVar35")) () ")")) (; ";")) (} "}"))) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" (if "if") (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" (( "(") (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x7554" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x7554")) () ")")))) () ")")) (argument_list "(param_1,local_90,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "local_90") (, ",") (identifier "unaff_s4") () ")"))) (; ";")) (} "}"))) (if_statement "if ((local_64 & 1) == 0) {\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }\n        else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" (if "if") (parenthesized_expression "((local_64 & 1) == 0)" (( "(") (binary_expression "(local_64 & 1) == 0" (parenthesized_expression "(local_64 & 1)" (( "(") (binary_expression "local_64 & 1" (identifier "local_64") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }\n        }" ({ "{") (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" (identifier "unaff_s3") (= "=") (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" (( "(") (binary_expression "PTR_LAB_000f5324 + -0x2d3c" (identifier "PTR_LAB_000f5324") (+ "+") (number_literal "-0x2d3c")) () ")")))) (; ";")) (if_statement "if (local_e8 == (code *)0x0) {\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);\n            if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }\n            if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }\n            if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }\n            (*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n          }" ({ "{") (labeled_statement "LAB_000b8da4:\n            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" (statement_identifier "LAB_000b8da4") (: ":") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))\n                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x2f14))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x2f14)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x2f14)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x2f14)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x2f14" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x2f14")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,\n                       param_5 & 0xff,local_d4,&local_60,piVar9,0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "puVar17") (, ",") (identifier "local_f0") (, ",") (identifier "local_c4") (, ",") (identifier "local_c8") (, ",") (identifier "local_e0") (, ",") (identifier "uVar12") (, ",") (binary_expression "param_5 & 0xff" (identifier "param_5") (& "&") (number_literal "0xff")) (, ",") (identifier "local_d4") (, ",") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (identifier "piVar9") (, ",") (number_literal "0") () ")"))) (; ";"))) (if_statement "if ((local_60 != 0) || (uVar12 != 0)) {\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" (if "if") (parenthesized_expression "((local_60 != 0) || (uVar12 != 0))" (( "(") (binary_expression "(local_60 != 0) || (uVar12 != 0)" (parenthesized_expression "(local_60 != 0)" (( "(") (binary_expression "local_60 != 0" (identifier "local_60") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }\n            }" ({ "{") (if_statement "if (local_ec == 0) {\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }\n              else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n              }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x20") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_e0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" (else "else") (compound_statement "{\n                (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n              }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x1d") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_dc") (, ",") (identifier "local_a4") () ")"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (iVar31 == 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }\n              if (uVar12 != 0) goto LAB_000b8ea8;\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x46bc" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x46bc")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "local_c4") (, ",") (identifier "puVar17") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (if_statement "if (local_88 != 0) {\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" (if "if") (parenthesized_expression "(local_88 != 0)" (( "(") (binary_expression "local_88 != 0" (identifier "local_88") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);\n                goto LAB_000b8fac;\n              }" ({ "{") (labeled_statement "LAB_000b8f88:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" (statement_identifier "LAB_000b8f88") (: ":") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x87,local_f0,0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x87") (, ",") (identifier "local_f0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (goto_statement "goto LAB_000b8fac;" (goto "goto") (statement_identifier "LAB_000b8fac") (; ";")) (} "}"))) (if_statement "if (uVar12 != 0) goto LAB_000b8ea8;" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b8ea8;" (goto "goto") (statement_identifier "LAB_000b8ea8") (; ";"))) (} "}")) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" (else "else") (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);\n              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);\n              if (local_88 != 0) goto LAB_000b8f88;\nLAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }\n              if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x3a44" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x3a44")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_e0,0,piVar9,uVar12)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_e0") (, ",") (number_literal "0") (, ",") (identifier "piVar9") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))\n                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x46bc))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x46bc)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x46bc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x46bc)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x46bc" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x46bc")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "local_c4") (, ",") (identifier "puVar17") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (if_statement "if (local_88 != 0) goto LAB_000b8f88;" (if "if") (parenthesized_expression "(local_88 != 0)" (( "(") (binary_expression "local_88 != 0" (identifier "local_88") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b8f88;" (goto "goto") (statement_identifier "LAB_000b8f88") (; ";"))) (labeled_statement "LAB_000b8fac:\n              if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" (statement_identifier "LAB_000b8fac") (: ":") (if_statement "if ((1 < iVar31) || (uVar12 != 0)) {\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" (if "if") (parenthesized_expression "((1 < iVar31) || (uVar12 != 0))" (( "(") (binary_expression "(1 < iVar31) || (uVar12 != 0)" (parenthesized_expression "(1 < iVar31)" (( "(") (binary_expression "1 < iVar31" (number_literal "1") (< "<") (identifier "iVar31")) () ")")) (|| "||") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);\n              }" ({ "{") (labeled_statement "LAB_000b8ea8:\n                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" (statement_identifier "LAB_000b8ea8") (: ":") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x7a,local_f0,0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x7a") (, ",") (identifier "local_f0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";"))) (} "}")))) (if_statement "if (iVar31 != 0) {\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" (if "if") (parenthesized_expression "(iVar31 != 0)" (( "(") (binary_expression "iVar31 != 0" (identifier "iVar31") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);\n                if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }\n                (*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);\n                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }\n                goto LAB_000b8698;\n              }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3a44))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3a44)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3a44)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3a44)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x3a44" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x3a44")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,0,local_c8,piVar9,uVar12)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (number_literal "0") (, ",") (identifier "local_c8") (, ",") (identifier "piVar9") (, ",") (identifier "uVar12") () ")"))) (; ";")) (if_statement "if (cVar2 == '\x02') {\n                  uVar18 = 6;\n                }\n                else {\n                  uVar18 = 4;\n                }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n                  uVar18 = 6;\n                }" ({ "{") (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" (identifier "uVar18") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n                  uVar18 = 4;\n                }" (else "else") (compound_statement "{\n                  uVar18 = 4;\n                }" ({ "{") (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" (identifier "uVar18") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" (( "(") (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" (* "*") (cast_expression "(code *)(PTR_000f5314 + 0x645c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_000f5314 + 0x645c)" (( "(") (binary_expression "PTR_000f5314 + 0x645c" (identifier "PTR_000f5314") (+ "+") (number_literal "0x645c")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "local_c4") (, ",") (identifier "local_c8") (, ",") (identifier "puVar17") (, ",") (identifier "uVar18") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" (if "if") (parenthesized_expression "((*(uint *)(*param_1 + 0x24) & 0x4000) != 0)" (( "(") (binary_expression "(*(uint *)(*param_1 + 0x24) & 0x4000) != 0" (parenthesized_expression "(*(uint *)(*param_1 + 0x24) & 0x4000)" (( "(") (binary_expression "*(uint *)(*param_1 + 0x24) & 0x4000" (pointer_expression "*(uint *)(*param_1 + 0x24)" (* "*") (cast_expression "(uint *)(*param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x24)" (( "(") (binary_expression "*param_1 + 0x24" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);\n                }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))\n                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x15ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x15ac)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x15ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x15ac)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x15ac" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x15ac")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,param_3,local_e0,piVar9,uVar12)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "param_3") (, ",") (identifier "local_e0") (, ",") (identifier "piVar9") (, ",") (identifier "uVar12") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000b8698;" (goto "goto") (statement_identifier "LAB_000b8698") (; ";")) (} "}"))) (} "}")))) (if_statement "if (cVar2 == '\x02') {\n              uVar18 = 6;\n            }\n            else {\n              uVar18 = 4;\n            }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n              uVar18 = 6;\n            }" ({ "{") (expression_statement "uVar18 = 6;" (assignment_expression "uVar18 = 6" (identifier "uVar18") (= "=") (number_literal "6")) (; ";")) (} "}")) (else_clause "else {\n              uVar18 = 4;\n            }" (else "else") (compound_statement "{\n              uVar18 = 4;\n            }" ({ "{") (expression_statement "uVar18 = 4;" (assignment_expression "uVar18 = 4" (identifier "uVar18") (= "=") (number_literal "4")) (; ";")) (} "}")))) (expression_statement "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);" (call_expression "(*(code *)(PTR_000f5314 + 0x645c))\n                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x645c))" (( "(") (pointer_expression "*(code *)(PTR_000f5314 + 0x645c)" (* "*") (cast_expression "(code *)(PTR_000f5314 + 0x645c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_000f5314 + 0x645c)" (( "(") (binary_expression "PTR_000f5314 + 0x645c" (identifier "PTR_000f5314") (+ "+") (number_literal "0x645c")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "local_c4") (, ",") (identifier "local_c8") (, ",") (identifier "puVar17") (, ",") (identifier "uVar18") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" (else "else") (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);\n          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);\n          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);\n          if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x336c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x336c)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x336c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x336c)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x336c" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x336c")) () ")")))) () ")")) (argument_list "(local_f8,unaff_s4,local_90)" (( "(") (identifier "local_f8") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_90") () ")"))) (; ";")) (expression_statement "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);" (assignment_expression "unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c)" (identifier "unaff_s3") (= "=") (cast_expression "(code *)(PTR_LAB_000f5324 + -0x2d3c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5324 + -0x2d3c)" (( "(") (binary_expression "PTR_LAB_000f5324 + -0x2d3c" (identifier "PTR_LAB_000f5324") (+ "+") (number_literal "-0x2d3c")) () ")")))) (; ";")) (expression_statement "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);" (call_expression "FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" (identifier "FUN_000bd2c4") (argument_list "(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4)" (( "(") (identifier "param_1") (, ",") (identifier "local_e4") (, ",") (number_literal "0x7f") (, ",") (identifier "param_3") (, ",") (number_literal "1") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_e0") (, ",") (identifier "param_5") (, ",") (identifier "local_d4") () ")"))) (; ";")) (if_statement "if (local_e8 == (code *)0x0) {\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" (if "if") (parenthesized_expression "(local_e8 == (code *)0x0)" (( "(") (binary_expression "local_e8 == (code *)0x0" (identifier "local_e8") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }\n            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);\n            pcVar23 = local_90;\n            iVar35 = 0;\n            while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }\n            if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }\n            goto LAB_000b8da4;\n          }" ({ "{") (if_statement "if (local_ec == 0) {\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }\n            else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" (if "if") (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x20,local_f0,local_d4,local_e0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x20") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_e0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" (else "else") (compound_statement "{\n              (*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))\n                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x4660))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x4660)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4660)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4660)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4660" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4660")) () ")")))) () ")")) (argument_list "(local_f8,0x1d,local_f0,local_d4,local_dc,local_a4)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x1d") (, ",") (identifier "local_f0") (, ",") (identifier "local_d4") (, ",") (identifier "local_dc") (, ",") (identifier "local_a4") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar14") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7574)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7574)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7574" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7574")) () ")")))) (; ";")) (expression_statement "pcVar23 = local_90;" (assignment_expression "pcVar23 = local_90" (identifier "pcVar23") (= "=") (identifier "local_90")) (; ";")) (expression_statement "iVar35 = 0;" (assignment_expression "iVar35 = 0" (identifier "iVar35") (= "=") (number_literal "0")) (; ";")) (while_statement "while (iVar35 < iVar14) {\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" (while "while") (parenthesized_expression "(iVar35 < iVar14)" (( "(") (binary_expression "iVar35 < iVar14" (identifier "iVar35") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);\n              if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }\n            }" ({ "{") (expression_statement "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);" (assignment_expression "uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" (identifier "uVar4") (= "=") (pointer_expression "*(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" (* "*") (cast_expression "(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar35 * 0x14 + unaff_s4[1] + 0x10)" (( "(") (binary_expression "iVar35 * 0x14 + unaff_s4[1] + 0x10" (binary_expression "iVar35 * 0x14 + unaff_s4[1]" (binary_expression "iVar35 * 0x14" (identifier "iVar35") (* "*") (number_literal "0x14")) (+ "+") (subscript_expression "unaff_s4[1]" (identifier "unaff_s4") ([ "[") (number_literal "1") (] "]"))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((uVar4 & 0x60) == 0) {\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }\n              else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" (if "if") (parenthesized_expression "((uVar4 & 0x60) == 0)" (( "(") (binary_expression "(uVar4 & 0x60) == 0" (parenthesized_expression "(uVar4 & 0x60)" (( "(") (binary_expression "uVar4 & 0x60" (identifier "uVar4") (& "&") (number_literal "0x60")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;\n                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);\n                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n                local_e8 = pcVar36;\n              }" ({ "{") (if_statement "if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))\n                goto LAB_000b95b4;" (if "if") (parenthesized_expression "((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))" (( "(") (binary_expression "(-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10))" (parenthesized_expression "(-1 < piVar9[iVar35])" (( "(") (binary_expression "-1 < piVar9[iVar35]" (number_literal "-1") (< "<") (subscript_expression "piVar9[iVar35]" (identifier "piVar9") ([ "[") (identifier "iVar35") (] "]"))) () ")")) (|| "||") (parenthesized_expression "(iVar35 == *(short *)(unaff_s4 + 10))" (( "(") (binary_expression "iVar35 == *(short *)(unaff_s4 + 10)" (identifier "iVar35") (== "==") (pointer_expression "*(short *)(unaff_s4 + 10)" (* "*") (cast_expression "(short *)(unaff_s4 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_s4 + 10)" (( "(") (binary_expression "unaff_s4 + 10" (identifier "unaff_s4") (+ "+") (number_literal "10")) () ")"))))) () ")"))) () ")")) (goto_statement "goto LAB_000b95b4;" (goto "goto") (statement_identifier "LAB_000b95b4") (; ";"))) (expression_statement "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);" (call_expression "(*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(local_f8,unaff_s4,local_f0,iVar35,pcVar23)" (( "(") (identifier "local_f8") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_f0") (, ",") (identifier "iVar35") (, ",") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar14") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_e8 = pcVar36;" (assignment_expression "local_e8 = pcVar36" (identifier "local_e8") (= "=") (identifier "pcVar36")) (; ";")) (} "}")) (else_clause "else {\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" (else "else") (compound_statement "{\n                if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }\nLAB_000b95b4:\n                pcVar23 = pcVar23 + 1;\n                iVar35 = iVar35 + 1;\n              }" ({ "{") (if_statement "if ((uVar4 & 0x20) != 0) {\n                  pcVar23 = pcVar23 + -1;\n                }" (if "if") (parenthesized_expression "((uVar4 & 0x20) != 0)" (( "(") (binary_expression "(uVar4 & 0x20) != 0" (parenthesized_expression "(uVar4 & 0x20)" (( "(") (binary_expression "uVar4 & 0x20" (identifier "uVar4") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar23 = pcVar23 + -1;\n                }" ({ "{") (expression_statement "pcVar23 = pcVar23 + -1;" (assignment_expression "pcVar23 = pcVar23 + -1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + -1" (identifier "pcVar23") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (labeled_statement "LAB_000b95b4:\n                pcVar23 = pcVar23 + 1;" (statement_identifier "LAB_000b95b4") (: ":") (expression_statement "pcVar23 = pcVar23 + 1;" (assignment_expression "pcVar23 = pcVar23 + 1" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar35 = iVar35 + 1;" (assignment_expression "iVar35 = iVar35 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar35 + 1" (identifier "iVar35") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((unaff_s4[9] & 0x60) != 0) {\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" (if "if") (parenthesized_expression "((unaff_s4[9] & 0x60) != 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x60) != 0" (parenthesized_expression "(unaff_s4[9] & 0x60)" (( "(") (binary_expression "unaff_s4[9] & 0x60" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x60")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x7554))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x7554)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x7554)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x7554)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x7554" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x7554")) () ")")))) () ")")) (argument_list "(param_1,local_90,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "local_90") (, ",") (identifier "unaff_s4") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_000b8da4;" (goto "goto") (statement_identifier "LAB_000b8da4") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000b8698:\n        if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" (statement_identifier "LAB_000b8698") (: ":") (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" (if "if") (parenthesized_expression "(local_a8 != 0)" (( "(") (binary_expression "local_a8 != 0" (identifier "local_a8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x52,local_a8,1,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x52") (, ",") (identifier "local_a8") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);" (call_expression "(*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" (parenthesized_expression "(*unaff_s3)" (( "(") (pointer_expression "*unaff_s3" (* "*") (identifier "unaff_s3")) () ")")) (argument_list "(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4)" (( "(") (identifier "param_1") (, ",") (identifier "local_e4") (, ",") (number_literal "0x7f") (, ",") (identifier "param_3") (, ",") (number_literal "2") (, ",") (identifier "unaff_s4") (, ",") (identifier "local_e0") (, ",") (identifier "param_5") (, ",") (identifier "local_d4") () ")"))) (; ";")) (if_statement "if (cVar2 == '\x01') {\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }\n        else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\x01')" (( "(") (binary_expression "cVar2 == '\x01'" (identifier "cVar2") (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\nLAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n        }" ({ "{") (labeled_statement "LAB_000b881c:\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (statement_identifier "LAB_000b881c") (: ":") (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" (identifier "pcVar34") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4a64" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4a64")) () ")")))) (; ";"))) (} "}")) (else_clause "else if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" (else "else") (if_statement "if (cVar2 == '\x02') {\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }\n        else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" (if "if") (parenthesized_expression "(cVar2 == '\x02')" (( "(") (binary_expression "cVar2 == '\x02'" (identifier "cVar2") (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);\n        }" ({ "{") (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" (identifier "pcVar34") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4a64" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4a64")) () ")")))) (; ";")) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(local_f8,local_d4)" (( "(") (identifier "local_f8") (, ",") (identifier "local_d4") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x4c88" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x4c88")) () ")")))) () ")")) (argument_list "(local_7c)" (( "(") (identifier "local_7c") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" (else "else") (compound_statement "{\n          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }\n          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);\n          (*pcVar34)(local_f8,local_d4);\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);\n          unaff_s3 = local_f8;\n        }" ({ "{") (if_statement "if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" (if "if") (parenthesized_expression "((local_ec == 0) && (pcVar34 == (code *)0x0))" (( "(") (binary_expression "(local_ec == 0) && (pcVar34 == (code *)0x0)" (parenthesized_expression "(local_ec == 0)" (( "(") (binary_expression "local_ec == 0" (identifier "local_ec") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar34 == (code *)0x0)" (( "(") (binary_expression "pcVar34 == (code *)0x0" (identifier "pcVar34") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);\n            goto LAB_000b881c;\n          }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0xb,0,local_d4,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0xb") (, ",") (number_literal "0") (, ",") (identifier "local_d4") (, ",") (number_literal "0") () ")"))) (; ";")) (goto_statement "goto LAB_000b881c;" (goto "goto") (statement_identifier "LAB_000b881c") (; ";")) (} "}"))) (expression_statement "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);" (assignment_expression "pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64)" (identifier "pcVar34") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x4a64)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x4a64" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x4a64")) () ")")))) (; ";")) (expression_statement "(*pcVar34)(local_f8,local_d4);" (call_expression "(*pcVar34)(local_f8,local_d4)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(local_f8,local_d4)" (( "(") (identifier "local_f8") (, ",") (identifier "local_d4") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,5,local_cc,local_a0,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "5") (, ",") (identifier "local_cc") (, ",") (identifier "local_a0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "unaff_s3 = local_f8;" (assignment_expression "unaff_s3 = local_f8" (identifier "unaff_s3") (= "=") (identifier "local_f8")) (; ";")) (} "}")))))) (expression_statement "(*pcVar34)(local_f8,local_b0);" (call_expression "(*pcVar34)(local_f8,local_b0)" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "(local_f8,local_b0)" (( "(") (identifier "local_f8") (, ",") (identifier "local_b0") () ")"))) (; ";")) (if_statement "if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)) {\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" (if "if") (parenthesized_expression "((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0))" (( "(") (binary_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))\n           && (param_1[0x1c] != 0)" (parenthesized_expression "(((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))" (( "(") (binary_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0)" (parenthesized_expression "((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0))" (( "(") (binary_expression "(*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)" (parenthesized_expression "(*(char *)((int)param_1 + 0x12) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x12) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x12)" (* "*") (cast_expression "(char *)((int)param_1 + 0x12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x12)" (( "(") (binary_expression "(int)param_1 + 0x12" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x12")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x1e] == 0)" (( "(") (binary_expression "param_1[0x1e] == 0" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_100 == 0)" (( "(") (binary_expression "local_100 == 0" (identifier "local_100") (== "==") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x1c] != 0)" (( "(") (binary_expression "param_1[0x1c] != 0" (subscript_expression "param_1[0x1c]" (identifier "param_1") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);\n        }" ({ "{") (expression_statement "(*(code *)(PTR_000f5314 + 0x78e0))(param_1);" (call_expression "(*(code *)(PTR_000f5314 + 0x78e0))(param_1)" (parenthesized_expression "(*(code *)(PTR_000f5314 + 0x78e0))" (( "(") (pointer_expression "*(code *)(PTR_000f5314 + 0x78e0)" (* "*") (cast_expression "(code *)(PTR_000f5314 + 0x78e0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_000f5314 + 0x78e0)" (( "(") (binary_expression "PTR_000f5314 + 0x78e0" (identifier "PTR_000f5314") (+ "+") (number_literal "0x78e0")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (local_a8 != 0) {\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" (if "if") (parenthesized_expression "(local_a8 != 0)" (( "(") (binary_expression "local_a8 != 0" (identifier "local_a8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);\n          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);\n          pcVar34 = local_f8;\n          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x47a8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x47a8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) () ")")) (argument_list "(local_f8,0x50,local_a8,1,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0x50") (, ",") (identifier "local_a8") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x7e44))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x7e44)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x7e44)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x7e44)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x7e44" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x7e44")) () ")")))) () ")")) (argument_list "(local_f8,1)" (( "(") (identifier "local_f8") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "pcVar34 = local_f8;" (assignment_expression "pcVar34 = local_f8" (identifier "pcVar34") (= "=") (identifier "local_f8")) (; ";")) (if_statement "if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)local_f8 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)local_f8 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)local_f8 + 0x51)" (* "*") (cast_expression "(char *)(*(int *)local_f8 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)local_f8 + 0x51)" (( "(") (binary_expression "*(int *)local_f8 + 0x51" (pointer_expression "*(int *)local_f8" (* "*") (cast_expression "(int *)local_f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_f8"))) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);\n          }" ({ "{") (expression_statement "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);" (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x1e28))" (( "(") (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x1e28)" (* "*") (cast_expression "(code *)(PTR_FUN_000f5300 + -0x1e28)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_FUN_000f5300 + -0x1e28)" (( "(") (binary_expression "PTR_FUN_000f5300 + -0x1e28" (identifier "PTR_FUN_000f5300") (+ "+") (number_literal "-0x1e28")) () ")")))) () ")")) (argument_list "(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0)" (( "(") (identifier "local_f8") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "PTR_DAT_000f52d4 + -0x67ec" (identifier "PTR_DAT_000f52d4") (+ "+") (number_literal "-0x67ec")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" (else "else") (compound_statement "{\n        local_e4 = (uint *)unaff_s4[0x10];\n        pcVar34 = (code *)param_1[2];\n        uVar12 = *param_1;\n        if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }\n        local_100 = param_1[10];\n        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;\n        iVar31 = param_2[0xc];\n        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);\n        param_1[10] = local_100 + 1;\n        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);\n        local_e0 = (code *)param_1[0xb];\n        iVar35 = *param_2;\n        pcVar23 = local_e0 + iVar14;\n        local_e8 = local_e0 + 1;\n        param_1[0xb] = (uint)pcVar23;\n        if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }\n        pcVar23 = local_f0;\n        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);\n        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);\n        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);\n        if (param_5 == 0xb) {\n          param_5 = 2;\n        }\n        if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }\n        puVar17 = (uint *)param_1[0x1d];\n        if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }\n        *(undefined1 *)((int)puVar17 + 0x15) = 1;\n        if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }\n      }" ({ "{") (expression_statement "local_e4 = (uint *)unaff_s4[0x10];" (assignment_expression "local_e4 = (uint *)unaff_s4[0x10]" (identifier "local_e4") (= "=") (cast_expression "(uint *)unaff_s4[0x10]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "unaff_s4[0x10]" (identifier "unaff_s4") ([ "[") (number_literal "0x10") (] "]")))) (; ";")) (expression_statement "pcVar34 = (code *)param_1[2];" (assignment_expression "pcVar34 = (code *)param_1[2]" (identifier "pcVar34") (= "=") (cast_expression "(code *)param_1[2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar12 = *param_1;" (assignment_expression "uVar12 = *param_1" (identifier "uVar12") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (local_e4 != (uint *)0x0) {\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" (if "if") (parenthesized_expression "(local_e4 != (uint *)0x0)" (( "(") (binary_expression "local_e4 != (uint *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar22 = *local_e4;\n          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }\n        }" ({ "{") (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" (identifier "uVar22") (= "=") (pointer_expression "*local_e4" (* "*") (identifier "local_e4"))) (; ";")) (while_statement "while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {\n            uVar22 = *local_e4;\n          }" (while "while") (parenthesized_expression "((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)))" (( "(") (parenthesized_expression "(uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))" (( "(") (binary_expression "uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" (binary_expression "uVar22 != uVar12" (identifier "uVar22") (!= "!=") (identifier "uVar12")) (&& "&&") (parenthesized_expression "(local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0)" (( "(") (comma_expression "local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0" (assignment_expression "local_e4 = (uint *)local_e4[6]" (identifier "local_e4") (= "=") (cast_expression "(uint *)local_e4[6]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "local_e4[6]" (identifier "local_e4") ([ "[") (number_literal "6") (] "]")))) (, ",") (binary_expression "local_e4 != (uint *)0x0" (identifier "local_e4") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")")) (compound_statement "{\n            uVar22 = *local_e4;\n          }" ({ "{") (expression_statement "uVar22 = *local_e4;" (assignment_expression "uVar22 = *local_e4" (identifier "uVar22") (= "=") (pointer_expression "*local_e4" (* "*") (identifier "local_e4"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "local_100 = param_1[10];" (assignment_expression "local_100 = param_1[10]" (identifier "local_100") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;" (assignment_expression "iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2" (identifier "iVar14") (= "=") (binary_expression "*(short *)((int)unaff_s4 + 0x2a) + 2" (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))) (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar31 = param_2[0xc];" (assignment_expression "iVar31 = param_2[0xc]" (identifier "iVar31") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);" (assignment_expression "pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8)" (identifier "pcVar36") (= "=") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x47a8)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x47a8" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x47a8")) () ")")))) (; ";")) (expression_statement "param_1[10] = local_100 + 1;" (assignment_expression "param_1[10] = local_100 + 1" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (binary_expression "local_100 + 1" (identifier "local_100") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" (identifier "local_f0") (= "=") (cast_expression "(code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar36)(pcVar34,100,local_100,iVar14,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,100,local_100,iVar14,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "100") (, ",") (identifier "local_100") (, ",") (identifier "iVar14") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "local_e0 = (code *)param_1[0xb];" (assignment_expression "local_e0 = (code *)param_1[0xb]" (identifier "local_e0") (= "=") (cast_expression "(code *)param_1[0xb]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")))) (; ";")) (expression_statement "iVar35 = *param_2;" (assignment_expression "iVar35 = *param_2" (identifier "iVar35") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "pcVar23 = local_e0 + iVar14;" (assignment_expression "pcVar23 = local_e0 + iVar14" (identifier "pcVar23") (= "=") (binary_expression "local_e0 + iVar14" (identifier "local_e0") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "local_e8 = local_e0 + 1;" (assignment_expression "local_e8 = local_e0 + 1" (identifier "local_e8") (= "=") (binary_expression "local_e0 + 1" (identifier "local_e0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0xb] = (uint)pcVar23;" (assignment_expression "param_1[0xb] = (uint)pcVar23" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)pcVar23" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar23"))) (; ";")) (if_statement "if (iVar35 < 2) {\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }\n        else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" (if "if") (parenthesized_expression "(iVar35 < 2)" (( "(") (binary_expression "iVar35 < 2" (identifier "iVar35") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          pcVar13 = pcVar23 + 2;\n          param_1[0xb] = (uint)pcVar13;\n          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);\n          puVar20 = unaff_s4;\n          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;\n          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n          local_d4 = local_e0 + 3;\n          iVar15 = 0;\n          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);\n          piVar11 = piVar9;\n          while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }\n          if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }\n          local_34 = *(code **)(unaff_s3 + 0x14);\n          local_30 = *(code **)(unaff_s3 + 0x18);\n          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];\n          if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }\n          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);\n          (*pcVar36)(pcVar34,0x74,iVar31,0,0);\n          local_e0 = pcVar16;\n          local_b0 = pcVar16;\n        }" ({ "{") (expression_statement "pcVar13 = pcVar23 + 2;" (assignment_expression "pcVar13 = pcVar23 + 2" (identifier "pcVar13") (= "=") (binary_expression "pcVar23 + 2" (identifier "pcVar23") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "param_1[0xb] = (uint)pcVar13;" (assignment_expression "param_1[0xb] = (uint)pcVar13" (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (cast_expression "(uint)pcVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar13"))) (; ";")) (expression_statement "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);" (assignment_expression "unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" (identifier "unaff_s3") (= "=") (cast_expression "(code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0009e360(param_1,param_2,param_4,0,0,4,0)" (identifier "FUN_0009e360") (argument_list "(param_1,param_2,param_4,0,0,4,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (if_statement "if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;" (if "if") (parenthesized_expression "(unaff_s3 == (code *)0x0)" (( "(") (binary_expression "unaff_s3 == (code *)0x0" (identifier "unaff_s3") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b7aa8;" (goto "goto") (statement_identifier "LAB_000b7aa8") (; ";"))) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "local_d4 = local_e0 + 3;" (assignment_expression "local_d4 = local_e0 + 3" (identifier "local_d4") (= "=") (binary_expression "local_e0 + 3" (identifier "local_e0") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar15 = 0;" (assignment_expression "iVar15 = 0" (identifier "iVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);" (assignment_expression "pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228)" (identifier "pcVar16") (= "=") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7228" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7228")) () ")")))) (; ";")) (expression_statement "piVar11 = piVar9;" (assignment_expression "piVar11 = piVar9" (identifier "piVar11") (= "=") (identifier "piVar9")) (; ";")) (while_statement "while (iVar15 < iVar35) {\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" (while "while") (parenthesized_expression "(iVar15 < iVar35)" (( "(") (binary_expression "iVar15 < iVar35" (identifier "iVar15") (< "<") (identifier "iVar35")) () ")")) (compound_statement "{\n            if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }\n          }" ({ "{") (if_statement "if (*piVar11 < 0) {\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }\n            else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" (if "if") (parenthesized_expression "(*piVar11 < 0)" (( "(") (binary_expression "*piVar11 < 0" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);\n              if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }\n            }" ({ "{") (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0xa6") (, ",") (identifier "iVar31") (, ",") (identifier "iVar15") (, ",") (binary_expression "local_d4 + iVar15" (identifier "local_d4") (+ "+") (identifier "iVar15")) () ")"))) (; ";")) (if_statement "if (*(int *)(pcVar34 + 0x6c) < 1) {\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }\n              else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" (if "if") (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) < 1)" (( "(") (binary_expression "*(int *)(pcVar34 + 0x6c) < 1" (pointer_expression "*(int *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(int *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n              }" ({ "{") (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" (else "else") (compound_statement "{\n                iVar15 = iVar15 + 1;\n                piVar11 = piVar11 + 1;\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;\n              }" ({ "{") (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (expression_statement "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1;" (assignment_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)\n                     = 1" (pointer_expression "*(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (* "*") (cast_expression "(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (( "(") (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(int *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")")))) (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(pcVar34 + 0x68)" (* "*") (cast_expression "(int *)(pcVar34 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x68)" (( "(") (binary_expression "pcVar34 + 0x68" (identifier "pcVar34") (+ "+") (number_literal "0x68")) () ")"))))) (+ "+") (number_literal "-0x12")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" (else "else") (compound_statement "{\n              if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }\n              iVar15 = iVar15 + 1;\n              piVar11 = piVar11 + 1;\n            }" ({ "{") (if_statement "if (param_1[2] != 0) {\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" (if "if") (parenthesized_expression "(param_1[2] != 0)" (( "(") (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);\n                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);\n              }" ({ "{") (expression_statement "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);" (call_expression "(*pcVar16)(param_1,param_3[*piVar11 * 4 + 1])" (parenthesized_expression "(*pcVar16)" (( "(") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) () ")")) (argument_list "(param_1,param_3[*piVar11 * 4 + 1])" (( "(") (identifier "param_1") (, ",") (subscript_expression "param_3[*piVar11 * 4 + 1]" (identifier "param_3") ([ "[") (binary_expression "*piVar11 * 4 + 1" (binary_expression "*piVar11 * 4" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (] "]")) () ")"))) (; ";")) (expression_statement "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "iVar35") (= "=") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")")))))) (; ";")) (} "}"))) (expression_statement "iVar15 = iVar15 + 1;" (assignment_expression "iVar15 = iVar15 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar15 + 1" (identifier "iVar15") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if ((unaff_s4[9] & 0x80) == 0) {\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }\n          else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" (if "if") (parenthesized_expression "((unaff_s4[9] & 0x80) == 0)" (( "(") (binary_expression "(unaff_s4[9] & 0x80) == 0" (parenthesized_expression "(unaff_s4[9] & 0x80)" (( "(") (binary_expression "unaff_s4[9] & 0x80" (subscript_expression "unaff_s4[9]" (identifier "unaff_s4") ([ "[") (number_literal "9") (] "]")) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);\n            if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }\n          }" ({ "{") (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x7f,iVar31,local_e8,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x7f") (, ",") (identifier "iVar31") (, ",") (identifier "local_e8") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_b4 == (code *)0x0) {\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }\n            else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" (if "if") (parenthesized_expression "(local_b4 == (code *)0x0)" (( "(") (binary_expression "local_b4 == (code *)0x0" (identifier "local_b4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);\n            }" ({ "{") (expression_statement "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x7f,iVar31,local_e0 + 2,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x7f") (, ",") (identifier "iVar31") (, ",") (binary_expression "local_e0 + 2" (identifier "local_e0") (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" (else "else") (if_statement "if (param_1[2] != 0) {\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" (if "if") (parenthesized_expression "(param_1[2] != 0)" (( "(") (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);\n            }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);" (call_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_000f5308 + 0x7228))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f5308 + 0x7228)" (* "*") (cast_expression "(code *)(PTR_LAB_000f5308 + 0x7228)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f5308 + 0x7228)" (( "(") (binary_expression "PTR_LAB_000f5308 + 0x7228" (identifier "PTR_LAB_000f5308") (+ "+") (number_literal "0x7228")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" (else "else") (compound_statement "{\n            uVar12 = unaff_s4[2];\n            while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }\n            local_d4 = (code *)(int)**(short **)(uVar12 + 4);\n            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);\n            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);\n          }" ({ "{") (expression_statement "uVar12 = unaff_s4[2];" (assignment_expression "uVar12 = unaff_s4[2]" (identifier "uVar12") (= "=") (subscript_expression "unaff_s4[2]" (identifier "unaff_s4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (while_statement "while( true ) {\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n              if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }\n              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;\n              uVar12 = *(uint *)(uVar12 + 0x14);\n            }" ({ "{") (if_statement "if (uVar12 == 0) {\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" (if "if") (parenthesized_expression "(uVar12 == 0)" (( "(") (binary_expression "uVar12 == 0" (identifier "uVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                pcVar34 = (code *)trap(0);\n                (*pcVar34)();\n              }" ({ "{") (expression_statement "pcVar34 = (code *)trap(0);" (assignment_expression "pcVar34 = (code *)trap(0)" (identifier "pcVar34") (= "=") (cast_expression "(code *)trap(0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "trap(0)" (identifier "trap") (argument_list "(0)" (( "(") (number_literal "0") () ")"))))) (; ";")) (expression_statement "(*pcVar34)();" (call_expression "(*pcVar34)()" (parenthesized_expression "(*pcVar34)" (( "(") (pointer_expression "*pcVar34" (* "*") (identifier "pcVar34")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;" (if "if") (parenthesized_expression "((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80)" (( "(") (binary_expression "(*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80" (parenthesized_expression "(*(byte *)(uVar12 + 0x37) & 0xc0)" (( "(") (binary_expression "*(byte *)(uVar12 + 0x37) & 0xc0" (pointer_expression "*(byte *)(uVar12 + 0x37)" (* "*") (cast_expression "(byte *)(uVar12 + 0x37)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x37)" (( "(") (binary_expression "uVar12 + 0x37" (identifier "uVar12") (+ "+") (number_literal "0x37")) () ")")))) (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = *(uint *)(uVar12 + 0x14);" (assignment_expression "uVar12 = *(uint *)(uVar12 + 0x14)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(uVar12 + 0x14)" (* "*") (cast_expression "(uint *)(uVar12 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar12 + 0x14)" (( "(") (binary_expression "uVar12 + 0x14" (identifier "uVar12") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (} "}"))) (expression_statement "local_d4 = (code *)(int)**(short **)(uVar12 + 4);" (assignment_expression "local_d4 = (code *)(int)**(short **)(uVar12 + 4)" (identifier "local_d4") (= "=") (cast_expression "(code *)(int)**(short **)(uVar12 + 4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(int)**(short **)(uVar12 + 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "**(short **)(uVar12 + 4)" (* "*") (pointer_expression "*(short **)(uVar12 + 4)" (* "*") (cast_expression "(short **)(uVar12 + 4)" (( "(") (type_descriptor "short **" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(uVar12 + 4)" (( "(") (binary_expression "uVar12 + 4" (identifier "uVar12") (+ "+") (number_literal "4")) () ")")))))))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);" (call_expression "(*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0xa6,iVar31,local_d4,local_e8)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0xa6") (, ",") (identifier "iVar31") (, ",") (identifier "local_d4") (, ",") (identifier "local_e8") () ")"))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);" (call_expression "(*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x4e") (, ",") (binary_expression "local_e0 + 3 + (int)local_d4" (binary_expression "local_e0 + 3" (identifier "local_e0") (+ "+") (number_literal "3")) (+ "+") (cast_expression "(int)local_d4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d4"))) (, ",") (binary_expression "local_e0 + 2" (identifier "local_e0") (+ "+") (number_literal "2")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (expression_statement "local_34 = *(code **)(unaff_s3 + 0x14);" (assignment_expression "local_34 = *(code **)(unaff_s3 + 0x14)" (identifier "local_34") (= "=") (pointer_expression "*(code **)(unaff_s3 + 0x14)" (* "*") (cast_expression "(code **)(unaff_s3 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s3 + 0x14)" (( "(") (binary_expression "unaff_s3 + 0x14" (identifier "unaff_s3") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "local_30 = *(code **)(unaff_s3 + 0x18);" (assignment_expression "local_30 = *(code **)(unaff_s3 + 0x18)" (identifier "local_30") (= "=") (pointer_expression "*(code **)(unaff_s3 + 0x18)" (* "*") (cast_expression "(code **)(unaff_s3 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(unaff_s3 + 0x18)" (( "(") (binary_expression "unaff_s3 + 0x18" (identifier "unaff_s3") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];" (assignment_expression "pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e]" (identifier "pcVar16") (= "=") (cast_expression "(code *)(uint)(byte)unaff_s3[0x2e]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (cast_expression "(uint)(byte)unaff_s3[0x2e]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)unaff_s3[0x2e]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "unaff_s3[0x2e]" (identifier "unaff_s3") ([ "[") (number_literal "0x2e") (] "]")))))) (; ";")) (if_statement "if (pcVar16 == (code *)0x0) {\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" (if "if") (parenthesized_expression "(pcVar16 == (code *)0x0)" (( "(") (binary_expression "pcVar16 == (code *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            puVar17 = (uint *)param_1[0x1d];\n            if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }\n            *(undefined1 *)(puVar17 + 5) = 1;\n            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);\n            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);\n            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);\n            goto LAB_000b80d0;\n          }" ({ "{") (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" (identifier "puVar17") (= "=") (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n              puVar17 = param_1;\n            }" (if "if") (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" (( "(") (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar17 = param_1;\n            }" ({ "{") (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" (identifier "puVar17") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(puVar17 + 5) = 1;" (assignment_expression "*(undefined1 *)(puVar17 + 5) = 1" (pointer_expression "*(undefined1 *)(puVar17 + 5)" (* "*") (cast_expression "(undefined1 *)(puVar17 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar17 + 5)" (( "(") (binary_expression "puVar17 + 5" (identifier "puVar17") (+ "+") (number_literal "5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);" (call_expression "(*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x5b") (, ",") (identifier "local_e8") (, ",") (identifier "iVar14") (, ",") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1")) () ")"))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);" (call_expression "(*pcVar36)(pcVar34,0x78,local_100,pcVar13,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x78,local_100,pcVar13,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x78") (, ",") (identifier "local_100") (, ",") (identifier "pcVar13") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);" (call_expression "(*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x79") (, ",") (identifier "local_100") (, ",") (binary_expression "pcVar23 + 1" (identifier "pcVar23") (+ "+") (number_literal "1")) (, ",") (identifier "pcVar13") () ")"))) (; ";")) (goto_statement "goto LAB_000b80d0;" (goto "goto") (statement_identifier "LAB_000b80d0") (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x29e8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x29e8)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x29e8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x29e8)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x29e8" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x29e8")) () ")")))) () ")")) (argument_list "(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14)" (( "(") (pointer_expression "*(int *)pcVar34" (* "*") (cast_expression "(int *)pcVar34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar34"))) (, ",") (binary_expression "pcVar34 + 0x68" (identifier "pcVar34") (+ "+") (number_literal "0x68")) (, ",") (identifier "local_f0") (, ",") (identifier "iVar14") () ")"))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x74,iVar31,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,iVar31,0,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x74,iVar31,0,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x74") (, ",") (identifier "iVar31") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "local_e0 = pcVar16;" (assignment_expression "local_e0 = pcVar16" (identifier "local_e0") (= "=") (identifier "pcVar16")) (; ";")) (expression_statement "local_b0 = pcVar16;" (assignment_expression "local_b0 = pcVar16" (identifier "local_b0") (= "=") (identifier "pcVar16")) (; ";")) (} "}")) (else_clause "else {\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" (else "else") (compound_statement "{\n          if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }\n          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);\n          iVar31 = (*local_e0)(*param_1,0,uVar18);\n          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }\n          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);\n          if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }\nLAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }\n          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);\n          iVar31 = 0;\n          if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }\n        }" ({ "{") (if_statement "if (local_b4 == (code *)0x0) {\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }\n          else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" (if "if") (parenthesized_expression "(local_b4 == (code *)0x0)" (( "(") (binary_expression "local_b4 == (code *)0x0" (identifier "local_b4") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);\n          }" ({ "{") (expression_statement "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);" (assignment_expression "uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" (identifier "uVar18") (= "=") (call_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0)" (parenthesized_expression "(*(code *)(PTR_FUN_000f5300 + -0x5d30))" (( "(") (pointer_expression "*(code *)(PTR_FUN_000f5300 + -0x5d30)" (* "*") (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" (( "(") (binary_expression "PTR_FUN_000f5300 + -0x5d30" (identifier "PTR_FUN_000f5300") (+ "+") (number_literal "-0x5d30")) () ")")))) () ")")) (argument_list "(param_1,0x4b,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0x4b") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" (else "else") (compound_statement "{\n            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);\n          }" ({ "{") (expression_statement "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);" (assignment_expression "uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" (identifier "uVar18") (= "=") (call_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52fc + -0x7698))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52fc + -0x7698)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" (( "(") (binary_expression "PTR_LAB_000f52fc + -0x7698" (identifier "PTR_LAB_000f52fc") (+ "+") (number_literal "-0x7698")) () ")")))) () ")")) (argument_list "(uVar12)" (( "(") (identifier "uVar12") () ")")))) (; ";")) (} "}")))) (expression_statement "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);" (assignment_expression "local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4)" (identifier "local_e0") (= "=") (cast_expression "(code *)(PTR_LAB_000f530c + 0x59e4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x59e4)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x59e4" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x59e4")) () ")")))) (; ";")) (expression_statement "iVar31 = (*local_e0)(*param_1,0,uVar18);" (assignment_expression "iVar31 = (*local_e0)(*param_1,0,uVar18)" (identifier "iVar31") (= "=") (call_expression "(*local_e0)(*param_1,0,uVar18)" (parenthesized_expression "(*local_e0)" (( "(") (pointer_expression "*local_e0" (* "*") (identifier "local_e0")) () ")")) (argument_list "(*param_1,0,uVar18)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "0") (, ",") (identifier "uVar18") () ")")))) (; ";")) (if_statement "if (0 < *(short *)((int)unaff_s4 + 0x2a)) {\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" (if "if") (parenthesized_expression "(0 < *(short *)((int)unaff_s4 + 0x2a))" (( "(") (binary_expression "0 < *(short *)((int)unaff_s4 + 0x2a)" (number_literal "0") (< "<") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))) () ")")) (compound_statement "{\n            local_f0 = (code *)0x1;\n            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);\n            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);\n            local_f8 = (code *)piVar9;\n            do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);\n          }" ({ "{") (expression_statement "local_f0 = (code *)0x1;" (assignment_expression "local_f0 = (code *)0x1" (identifier "local_f0") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);" (assignment_expression "pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30)" (identifier "pcVar23") (= "=") (cast_expression "(code *)(PTR_FUN_000f5300 + -0x5d30)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_FUN_000f5300 + -0x5d30)" (( "(") (binary_expression "PTR_FUN_000f5300 + -0x5d30" (identifier "PTR_FUN_000f5300") (+ "+") (number_literal "-0x5d30")) () ")")))) (; ";")) (expression_statement "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);" (assignment_expression "pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698)" (identifier "pcVar13") (= "=") (cast_expression "(code *)(PTR_LAB_000f52fc + -0x7698)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52fc + -0x7698)" (( "(") (binary_expression "PTR_LAB_000f52fc + -0x7698" (identifier "PTR_LAB_000f52fc") (+ "+") (number_literal "-0x7698")) () ")")))) (; ";")) (expression_statement "local_f8 = (code *)piVar9;" (assignment_expression "local_f8 = (code *)piVar9" (identifier "local_f8") (= "=") (cast_expression "(code *)piVar9" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar9"))) (; ";")) (do_statement "do {\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            } while (bVar5);" (do "do") (compound_statement "{\n              if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }\n              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);\n              local_f8 = (code *)((int)local_f8 + 4);\n              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);\n              local_f0 = (code *)((int)local_f0 + 1);\n              local_d4 = pcVar32;\n            }" ({ "{") (if_statement "if (*(int *)local_f8 < 0) {\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }\n              else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" (if "if") (parenthesized_expression "(*(int *)local_f8 < 0)" (( "(") (binary_expression "*(int *)local_f8 < 0" (pointer_expression "*(int *)local_f8" (* "*") (cast_expression "(int *)local_f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_f8"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                uVar22 = (*pcVar23)(param_1,0x4b,0,0);\n                if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }\n              }" ({ "{") (expression_statement "uVar22 = (*pcVar23)(param_1,0x4b,0,0);" (assignment_expression "uVar22 = (*pcVar23)(param_1,0x4b,0,0)" (identifier "uVar22") (= "=") (call_expression "(*pcVar23)(param_1,0x4b,0,0)" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "(param_1,0x4b,0,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0x4b") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (uVar22 != 0) {\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" (if "if") (parenthesized_expression "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  *(short *)(uVar22 + 0x20) = (short)local_f0;\n                }" ({ "{") (expression_statement "*(short *)(uVar22 + 0x20) = (short)local_f0;" (assignment_expression "*(short *)(uVar22 + 0x20) = (short)local_f0" (pointer_expression "*(short *)(uVar22 + 0x20)" (* "*") (cast_expression "(short *)(uVar22 + 0x20)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar22 + 0x20)" (( "(") (binary_expression "uVar22 + 0x20" (identifier "uVar22") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (cast_expression "(short)local_f0" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "local_f0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" (else "else") (compound_statement "{\n                uVar22 = param_3[*(int *)local_f8 * 4 + 1];\n                if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }\n              }" ({ "{") (expression_statement "uVar22 = param_3[*(int *)local_f8 * 4 + 1];" (assignment_expression "uVar22 = param_3[*(int *)local_f8 * 4 + 1]" (identifier "uVar22") (= "=") (subscript_expression "param_3[*(int *)local_f8 * 4 + 1]" (identifier "param_3") ([ "[") (binary_expression "*(int *)local_f8 * 4 + 1" (binary_expression "*(int *)local_f8 * 4" (pointer_expression "*(int *)local_f8" (* "*") (cast_expression "(int *)local_f8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_f8"))) (* "*") (number_literal "4")) (+ "+") (number_literal "1")) (] "]"))) (; ";")) (if_statement "if (uVar22 != 0) {\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" (if "if") (parenthesized_expression "(uVar22 != 0)" (( "(") (binary_expression "uVar22 != 0" (identifier "uVar22") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);\n                }" ({ "{") (expression_statement "uVar22 = (*pcVar13)(uVar12,uVar22,0,0);" (assignment_expression "uVar22 = (*pcVar13)(uVar12,uVar22,0,0)" (identifier "uVar22") (= "=") (call_expression "(*pcVar13)(uVar12,uVar22,0,0)" (parenthesized_expression "(*pcVar13)" (( "(") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) () ")")) (argument_list "(uVar12,uVar22,0,0)" (( "(") (identifier "uVar12") (, ",") (identifier "uVar22") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar31 = (*local_e0)(*param_1,iVar31,uVar22);" (assignment_expression "iVar31 = (*local_e0)(*param_1,iVar31,uVar22)" (identifier "iVar31") (= "=") (call_expression "(*local_e0)(*param_1,iVar31,uVar22)" (parenthesized_expression "(*local_e0)" (( "(") (pointer_expression "*local_e0" (* "*") (identifier "local_e0")) () ")")) (argument_list "(*param_1,iVar31,uVar22)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar31") (, ",") (identifier "uVar22") () ")")))) (; ";")) (expression_statement "local_f8 = (code *)((int)local_f8 + 4);" (assignment_expression "local_f8 = (code *)((int)local_f8 + 4)" (identifier "local_f8") (= "=") (cast_expression "(code *)((int)local_f8 + 4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f8 + 4)" (( "(") (binary_expression "(int)local_f8 + 4" (cast_expression "(int)local_f8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f8")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);" (assignment_expression "bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" (identifier "bVar5") (= "=") (binary_expression "(int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a)" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (< "<") (cast_expression "(int)*(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(short *)((int)unaff_s4 + 0x2a)" (* "*") (cast_expression "(short *)((int)unaff_s4 + 0x2a)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s4 + 0x2a)" (( "(") (binary_expression "(int)unaff_s4 + 0x2a" (cast_expression "(int)unaff_s4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s4")) (+ "+") (number_literal "0x2a")) () ")"))))))) (; ";")) (expression_statement "local_f0 = (code *)((int)local_f0 + 1);" (assignment_expression "local_f0 = (code *)((int)local_f0 + 1)" (identifier "local_f0") (= "=") (cast_expression "(code *)((int)local_f0 + 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f0 + 1)" (( "(") (binary_expression "(int)local_f0 + 1" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_d4 = pcVar32;" (assignment_expression "local_d4 = pcVar32" (identifier "local_d4") (= "=") (identifier "pcVar32")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar5)" (( "(") (identifier "bVar5") () ")")) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);" (call_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52c8 + -0x3ed4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52c8 + -0x3ed4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52c8 + -0x3ed4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52c8 + -0x3ed4)" (( "(") (binary_expression "PTR_LAB_000f52c8 + -0x3ed4" (identifier "PTR_LAB_000f52c8") (+ "+") (number_literal "-0x3ed4")) () ")")))) () ")")) (argument_list "(param_1,local_100,0,iVar31,param_2,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "local_100") (, ",") (number_literal "0") (, ",") (identifier "iVar31") (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (iVar31 == 0) {\n            unaff_s3 = (code *)0x0;\n          }\n          else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" (if "if") (parenthesized_expression "(iVar31 == 0)" (( "(") (binary_expression "iVar31 == 0" (identifier "iVar31") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            unaff_s3 = (code *)0x0;\n          }" ({ "{") (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" (identifier "unaff_s3") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" (else "else") (compound_statement "{\n            unaff_s3 = (code *)0x0;\n            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);\n          }" ({ "{") (expression_statement "unaff_s3 = (code *)0x0;" (assignment_expression "unaff_s3 = (code *)0x0" (identifier "unaff_s3") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x3aa4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x3aa4)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x3aa4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x3aa4)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x3aa4" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x3aa4")) () ")")))) () ")")) (argument_list "(uVar12,iVar31)" (( "(") (identifier "uVar12") (, ",") (identifier "iVar31") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_000b80d0:\n          if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" (statement_identifier "LAB_000b80d0") (: ":") (if_statement "if (*param_2 == 1) {\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" (if "if") (parenthesized_expression "(*param_2 == 1)" (( "(") (binary_expression "*param_2 == 1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x4c88" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x4c88")) () ")")))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")"))) (; ";")) (} "}")))) (expression_statement "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);" (assignment_expression "local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" (identifier "local_f0") (= "=") (cast_expression "(code *)(*pcVar36)(pcVar34,0x25,local_100,0,0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar36)(pcVar34,0x25,local_100,0,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x25,local_100,0,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x25") (, ",") (identifier "local_100") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))))) (; ";")) (expression_statement "iVar31 = 0;" (assignment_expression "iVar31 = 0" (identifier "iVar31") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < iVar14) {\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" (if "if") (parenthesized_expression "(0 < iVar14)" (( "(") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n            do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);\n          }" ({ "{") (do_statement "do {\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            } while (iVar14 != iVar35);" (do "do") (compound_statement "{\n              iVar35 = iVar31 + 1;\n              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);\n              iVar31 = iVar35;\n            }" ({ "{") (expression_statement "iVar35 = iVar31 + 1;" (assignment_expression "iVar35 = iVar31 + 1" (identifier "iVar35") (= "=") (binary_expression "iVar31 + 1" (identifier "iVar31") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);" (call_expression "(*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x59") (, ",") (identifier "local_100") (, ",") (identifier "iVar31") (, ",") (binary_expression "local_e8 + iVar31" (identifier "local_e8") (+ "+") (identifier "iVar31")) () ")"))) (; ";")) (expression_statement "iVar31 = iVar35;" (assignment_expression "iVar31 = iVar35" (identifier "iVar31") (= "=") (identifier "iVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar14 != iVar35)" (( "(") (binary_expression "iVar14 != iVar35" (identifier "iVar14") (!= "!=") (identifier "iVar35")) () ")")) (; ";")) (} "}"))) (} "}")))) (expression_statement "pcVar23 = local_f0;" (assignment_expression "pcVar23 = local_f0" (identifier "pcVar23") (= "=") (identifier "local_f0")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);" (call_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + 0x6b18))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + 0x6b18)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + 0x6b18)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + 0x6b18)" (( "(") (binary_expression "PTR_LAB_000f52ec + 0x6b18" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "0x6b18")) () ")")))) () ")")) (argument_list "(param_1,unaff_s4)" (( "(") (identifier "param_1") (, ",") (identifier "unaff_s4") () ")"))) (; ";")) (expression_statement "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);" (assignment_expression "uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8)" (identifier "uVar18") (= "=") (call_expression "(*pcVar36)(pcVar34,10,0,iVar14,local_e8)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,10,0,iVar14,local_e8)" (( "(") (identifier "pcVar34") (, ",") (number_literal "10") (, ",") (number_literal "0") (, ",") (identifier "iVar14") (, ",") (identifier "local_e8") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);" (call_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52e8 + -0x37ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52e8 + -0x37ac)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52e8 + -0x37ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52e8 + -0x37ac)" (( "(") (binary_expression "PTR_LAB_000f52e8 + -0x37ac" (identifier "PTR_LAB_000f52e8") (+ "+") (number_literal "-0x37ac")) () ")")))) () ")")) (argument_list "(pcVar34,uVar18,local_e4,0xfffffff4)" (( "(") (identifier "pcVar34") (, ",") (identifier "uVar18") (, ",") (identifier "local_e4") (, ",") (number_literal "0xfffffff4") () ")"))) (; ";")) (if_statement "if (param_5 == 0xb) {\n          param_5 = 2;\n        }" (if "if") (parenthesized_expression "(param_5 == 0xb)" (( "(") (binary_expression "param_5 == 0xb" (identifier "param_5") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n          param_5 = 2;\n        }" ({ "{") (expression_statement "param_5 = 2;" (assignment_expression "param_5 = 2" (identifier "param_5") (= "=") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (0 < *(int *)(pcVar34 + 0x6c)) {\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(pcVar34 + 0x6c))" (( "(") (binary_expression "0 < *(int *)(pcVar34 + 0x6c)" (number_literal "0") (< "<") (pointer_expression "*(int *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(int *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")"))))) () ")")) (compound_statement "{\n          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;\n        }" ({ "{") (expression_statement "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5;" (assignment_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =\n               (short)param_5" (pointer_expression "*(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (* "*") (cast_expression "(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)" (( "(") (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "*(int *)(pcVar34 + 0x6c) * 0x14" (pointer_expression "*(int *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(int *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")")))) (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(pcVar34 + 0x68)" (* "*") (cast_expression "(int *)(pcVar34 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x68)" (( "(") (binary_expression "pcVar34 + 0x68" (identifier "pcVar34") (+ "+") (number_literal "0x68")) () ")"))))) (+ "+") (number_literal "-0x12")) () ")")))) (= "=") (cast_expression "(short)param_5" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "param_5"))) (; ";")) (} "}"))) (expression_statement "puVar17 = (uint *)param_1[0x1d];" (assignment_expression "puVar17 = (uint *)param_1[0x1d]" (identifier "puVar17") (= "=") (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")))) (; ";")) (if_statement "if ((uint *)param_1[0x1d] == (uint *)0x0) {\n          puVar17 = param_1;\n        }" (if "if") (parenthesized_expression "((uint *)param_1[0x1d] == (uint *)0x0)" (( "(") (binary_expression "(uint *)param_1[0x1d] == (uint *)0x0" (cast_expression "(uint *)param_1[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]"))) (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar17 = param_1;\n        }" ({ "{") (expression_statement "puVar17 = param_1;" (assignment_expression "puVar17 = param_1" (identifier "puVar17") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)puVar17 + 0x15) = 1;" (assignment_expression "*(undefined1 *)((int)puVar17 + 0x15) = 1" (pointer_expression "*(undefined1 *)((int)puVar17 + 0x15)" (* "*") (cast_expression "(undefined1 *)((int)puVar17 + 0x15)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar17 + 0x15)" (( "(") (binary_expression "(int)puVar17 + 0x15" (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")) (+ "+") (number_literal "0x15")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (local_b0 == (code *)0x0) {\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }\n        else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" (if "if") (parenthesized_expression "(local_b0 == (code *)0x0)" (( "(") (binary_expression "local_b0 == (code *)0x0" (identifier "local_b0") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);\n          if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }\n          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }\n          param_1[2] = *(uint *)(pcVar34 + 0x6c);\n          (*pcVar36)(pcVar34,0x74,local_100,0,0);\n          unaff_s3 = pcVar23;\n          puVar20 = unaff_s4;\n        }" ({ "{") (expression_statement "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);" (call_expression "(*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,5,local_100,local_f0 + 1,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "5") (, ",") (identifier "local_100") (, ",") (binary_expression "local_f0 + 1" (identifier "local_f0") (+ "+") (number_literal "1")) (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((int)local_f0 < 0) {\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" (if "if") (parenthesized_expression "((int)local_f0 < 0)" (( "(") (binary_expression "(int)local_f0 < 0" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);\n          }" ({ "{") (expression_statement "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);" (assignment_expression "local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1)" (identifier "local_f0") (= "=") (cast_expression "(code *)(*(uint *)(pcVar34 + 0x6c) - 1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint *)(pcVar34 + 0x6c) - 1)" (( "(") (binary_expression "*(uint *)(pcVar34 + 0x6c) - 1" (pointer_expression "*(uint *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(uint *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")")))) (- "-") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (if_statement "if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }\n          else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" (if "if") (parenthesized_expression "(*(char *)(*(int *)pcVar34 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)(*(int *)pcVar34 + 0x51) == '\0'" (pointer_expression "*(char *)(*(int *)pcVar34 + 0x51)" (* "*") (cast_expression "(char *)(*(int *)pcVar34 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)pcVar34 + 0x51)" (( "(") (binary_expression "*(int *)pcVar34 + 0x51" (pointer_expression "*(int *)pcVar34" (* "*") (cast_expression "(int *)pcVar34" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar34"))) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));\n          }" ({ "{") (expression_statement "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));" (assignment_expression "param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" (identifier "param_1") (= "=") (cast_expression "(uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68))" (( "(") (binary_expression "(int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68)" (binary_expression "(int)local_f0 * 0x14" (cast_expression "(int)local_f0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_f0")) (* "*") (number_literal "0x14")) (+ "+") (pointer_expression "*(int *)(pcVar34 + 0x68)" (* "*") (cast_expression "(int *)(pcVar34 + 0x68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x68)" (( "(") (binary_expression "pcVar34 + 0x68" (identifier "pcVar34") (+ "+") (number_literal "0x68")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" (else "else") (compound_statement "{\n            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);\n          }" ({ "{") (expression_statement "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);" (assignment_expression "param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860)" (identifier "param_1") (= "=") (cast_expression "(uint *)(PTR_DAT_000f52bc + 0x5860)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_000f52bc + 0x5860)" (( "(") (binary_expression "PTR_DAT_000f52bc + 0x5860" (identifier "PTR_DAT_000f52bc") (+ "+") (number_literal "0x5860")) () ")")))) (; ";")) (} "}")))) (expression_statement "param_1[2] = *(uint *)(pcVar34 + 0x6c);" (assignment_expression "param_1[2] = *(uint *)(pcVar34 + 0x6c)" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(uint *)(pcVar34 + 0x6c)" (* "*") (cast_expression "(uint *)(pcVar34 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar34 + 0x6c)" (( "(") (binary_expression "pcVar34 + 0x6c" (identifier "pcVar34") (+ "+") (number_literal "0x6c")) () ")"))))) (; ";")) (expression_statement "(*pcVar36)(pcVar34,0x74,local_100,0,0);" (call_expression "(*pcVar36)(pcVar34,0x74,local_100,0,0)" (parenthesized_expression "(*pcVar36)" (( "(") (pointer_expression "*pcVar36" (* "*") (identifier "pcVar36")) () ")")) (argument_list "(pcVar34,0x74,local_100,0,0)" (( "(") (identifier "pcVar34") (, ",") (number_literal "0x74") (, ",") (identifier "local_100") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "unaff_s3 = pcVar23;" (assignment_expression "unaff_s3 = pcVar23" (identifier "unaff_s3") (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (} "}")) (else_clause "else {\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" (else "else") (compound_statement "{\n          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);\n          puVar20 = unaff_s4;\n        }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);" (call_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3)" (parenthesized_expression "(*(code *)(PTR_LAB_000f530c + 0x4c88))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f530c + 0x4c88)" (* "*") (cast_expression "(code *)(PTR_LAB_000f530c + 0x4c88)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f530c + 0x4c88)" (( "(") (binary_expression "PTR_LAB_000f530c + 0x4c88" (identifier "PTR_LAB_000f530c") (+ "+") (number_literal "0x4c88")) () ")")))) () ")")) (argument_list "(unaff_s3)" (( "(") (identifier "unaff_s3") () ")"))) (; ";")) (expression_statement "puVar20 = unaff_s4;" (assignment_expression "puVar20 = unaff_s4" (identifier "puVar20") (= "=") (identifier "unaff_s4")) (; ";")) (} "}")))) (} "}")))) (} "}")))) (labeled_statement "LAB_000b7aa8:\n    puVar17 = local_58;" (statement_identifier "LAB_000b7aa8") (: ":") (expression_statement "puVar17 = local_58;" (assignment_expression "puVar17 = local_58" (identifier "puVar17") (= "=") (identifier "local_58")) (; ";"))) (if_statement "if (local_58 != (uint *)0x0) {\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" (if "if") (parenthesized_expression "(local_58 != (uint *)0x0)" (( "(") (binary_expression "local_58 != (uint *)0x0" (identifier "local_58") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_58 = (uint *)0x0;\n      puVar17[0x3d] = local_5c;\n    }" ({ "{") (expression_statement "local_58 = (uint *)0x0;" (assignment_expression "local_58 = (uint *)0x0" (identifier "local_58") (= "=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "puVar17[0x3d] = local_5c;" (assignment_expression "puVar17[0x3d] = local_5c" (subscript_expression "puVar17[0x3d]" (identifier "puVar17") ([ "[") (number_literal "0x3d") (] "]")) (= "=") (identifier "local_5c")) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);" (call_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_000f52ec + -0x7728))" (( "(") (pointer_expression "*(code *)(PTR_LAB_000f52ec + -0x7728)" (* "*") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x7728" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x7728")) () ")")))) () ")")) (argument_list "(pcVar32,piVar9)" (( "(") (identifier "pcVar32") (, ",") (identifier "piVar9") () ")"))) (; ";")) (expression_statement "unaff_s4 = puVar20;" (assignment_expression "unaff_s4 = puVar20" (identifier "unaff_s4") (= "=") (identifier "puVar20")) (; ";")) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}")))

void function_1(type_1 *pParse,type_2 *pTabList,type_3 *var_14,type_4 *var_15,int var_35,
                  type_3 *pOrderBy,type_4 *pLimit,type_5 *pUpsert)

{
  type_6 **ppIVar1;
  type_7 var_12;
  type_8 var_45;
  short var_22;
  type_9 var_59;
  bool bVar6;
  type_10 var_43;
  type_11 *puVar8;
  type_11 *var_26;
  type_11 *puVar10;
  int var_16;
  int *var_19;
  int *piVar13;
  int *var_23;
  int var_7;
  type_12 *pcVar16;
  type_13 var_10;
  int var_34;
  type_14 *var_64;
  type_12 *pcVar20;
  type_4 *var_71;
  type_15 *pVVar22;
  type_16 var_57;
  type_12 *pcVar24;
  int var_67;
  type_1 *pPVar26;
  type_17 uVar27;
  type_11 *var_18;
  type_17 uVar29;
  type_13 var_28;
  type_6 *var_11;
  type_18 *puVar32;
  type_18 *var_66;
  type_7 *var_29;
  type_14 *var_65;
  int var_51;
  type_19 *pCVar37;
  char *pcVar38;
  type_7 *var_27;
  short *psVar40;
  type_19 *pCVar41;
  type_19 *var_32;
  type_14 *psVar43;
  int *var_21;
  type_13 var_58;
  type_20 *var_1;
  type_20 *var_2;
  type_20 *pWVar47;
  type_21 *var_4;
  type_21 *pTVar48;
  type_15 **ppVVar49;
  type_1 *unaff_s5;
  int var_30;
  type_22 *pSVar51;
  type_21 *in_stack_fffffed4;
  type_14 *in_stack_fffffed8;
  type_23 *var_17;
  type_20 *var_24;
  type_12 *local_f4;
  type_20 *var_49;
  type_6 *var_13;
  type_22 *var_41;
  type_24 *var_38;
  type_14 *local_e0;
  type_14 *local_dc;
  type_20 *var_40;
  type_14 *local_d4;
  int var_44;
  type_14 *local_cc;
  type_14 *local_c8;
  type_14 *local_c4;
  type_12 *var_68;
  type_14 *var_9;
  type_20 *local_ac;
  int var_63;
  int local_a4;
  type_17 local_a0;
  type_14 *var_46;
  type_14 *local_98;
  int var_39;
  type_15 **local_90;
  type_18 *var_20;
  type_13 var_61;
  int var_33;
  int local_80;
  type_20 *var_48;
  int *local_78;
  int var_60;
  int var_36;
  type_25 sContext;
  type_26 sNC;
  int aiCurOnePass [2];
  
  puVar10 = PTR___stack_chk_guard_000f5568;
  var_17 = (type_23 *)pOrderBy;
  var_1 = (type_20 *)pParse->nErr;
  var_36 = 0;
  sContext.zAuthContext = (char *)0x0;
  sContext.pParse = (type_1 *)0x0;
  var_16 = *(int *)PTR___stack_chk_guard_000f5568;
  psVar43 = pParse->db;
  if ((var_1 == (type_20 *)0x0) &&
     (var_2 = (type_20 *)(type_13)psVar43->mallocFailed, var_2 == (type_20 *)0x0)) {
    var_4 = var_3(pParse,pTabList);
    if (var_4 == (type_21 *)0x0) goto LAB_000b7424;
    if (var_4->pSchema == (type_24 *)0x0) {
      local_e0 = (type_14 *)0xffff8000;
    }
    else {
      local_e0 = (type_14 *)(*(type_12 *)(var_5 + 0x1608))(pParse->db);
    }
    var_38 = (type_24 *)
               (*(type_12 *)(var_5 + 0x20b0))(pParse,var_4,0x7f,var_14,&var_60);
    var_41 = var_4->pSelect;
    if (1 < pTabList->nSrc) {
      var_1 = (type_20 *)var_14->nExpr;
    }
    var_7 = var_6(pParse,var_4);
    if (var_7 != 0) goto LAB_000b7424;
    var_9 = (type_14 *)(*(type_12 *)(var_8 + -0x45b0))(pParse,var_4,var_60);
    if (var_9 != (type_14 *)0x0) goto LAB_000b7424;
    local_d4 = (type_14 *)pParse->nTab;
    var_10 = var_4->tabFlags;
    local_c4 = (type_14 *)((int)&local_d4->pVfs + 1);
    var_11 = var_4->pIndex;
    pParse->nTab = (int)local_c4;
    var_49 = (type_20 *)local_d4;
    if ((var_10 & 0x80) == 0) {
      var_13 = (type_6 *)0x0;
      if (var_11 == (type_6 *)0x0) {
        var_20 = (type_18 *)0x0;
        goto LAB_000b7504;
      }
    }
    else {
      if (var_11 == (type_6 *)0x0) goto LAB_000b82e4;
      var_12 = var_11->field_0x37;
      var_13 = var_11;
      while (((var_12 & 0xc0) != 0x80 && (var_13 = var_13->pNext, var_13 != (type_6 *)0x0))) {
        var_12 = var_13->field_0x37;
      }
    }
    var_65 = local_c4;
    do {
      ppIVar1 = &var_11->pNext;
      if (var_11 == var_13) {
        var_49 = (type_20 *)var_65;
      }
      var_65 = (type_14 *)((int)&var_65->pVfs + 1);
      var_20 = (type_18 *)((int)&var_65->pVfs + ~(type_13)local_d4);
      var_11 = *ppIVar1;
    } while (*ppIVar1 != (type_6 *)0x0);
    pParse->nTab = (int)var_65;
    goto LAB_000b7504;
  }
  do {
    while( true ) {
      pParse = unaff_s5;
      (*(type_12 *)(var_8 + 0x35c8))(psVar43,pTabList);
      if (var_14 != (type_3 *)0x0) {
        (*(type_12 *)(var_8 + 0x3aa4))(psVar43,var_14);
      }
      if (var_15 != (type_4 *)0x0) {
        (*(type_12 *)(var_8 + 0x3940))(psVar43,var_15);
      }
      if (var_16 == *(int *)puVar10) {
        return;
      }
      (*(type_12 *)PTR___stack_chk_fail_000f5540)();
LAB_000b82e4:
      var_13 = (type_6 *)0x0;
      var_20 = (type_18 *)0x0;
      var_49 = (type_20 *)local_d4;
LAB_000b7504:
      if (var_17 != (type_23 *)0x0) {
        var_49 = (type_20 *)var_17->aCol;
        local_c4 = (type_14 *)var_17->nColumn;
        pParse->nTab = (int)local_d4;
      }
      var_18 = var_5;
      pTabList->a[0].iCursor = (int)var_49;
      var_19 = (int *)(*(type_12 *)(var_18 + 0x6c00))(psVar43);
      if (var_19 != (int *)0x0) break;
LAB_000b7424:
      pPVar26 = sContext.pParse;
      unaff_s5 = pParse;
      if (sContext.pParse != (type_1 *)0x0) {
        sContext.pParse = (type_1 *)0x0;
        pPVar26->zAuthContext = sContext.zAuthContext;
      }
    }
    var_66 = var_20 + 1;
    var_21 = var_19 + var_4->nCol;
    piVar13 = var_21 + (int)var_66;
    (*(type_12 *)PTR_memset_000f5450)(piVar13,1,var_66);
    *(type_18 *)((int)piVar13 + (int)var_66) = 0;
    var_22 = var_4->nCol;
    if (0 < var_22) {
      var_23 = var_19;
      do {
        *var_23 = -1;
        var_23 = var_23 + 1;
      } while (var_19 + var_22 != var_23);
    }
    var_24 = (type_20 *)pParse->pVdbe;
    sNC.pNext = (type_26 *)0x0;
    sNC.uNC.pAggInfo = var_17;
    sNC.nRef = 0;
    sNC.nErr = 0;
    sNC.pWinSelect = (type_22 *)0x0;
    sNC.ncFlags = 0x200;
    sNC.pParse = pParse;
    sNC.pSrcList = pTabList;
    if (var_24 == (type_20 *)0x0) {
      var_24 = (type_20 *)(*(type_12 *)(var_25 + -0x42ac))(pParse);
      pTVar48 = var_4;
      if (var_24 != (type_20 *)0x0) {
        var_7 = var_14->nExpr;
        goto LAB_000b7624;
      }
    }
    else {
      var_7 = var_14->nExpr;
LAB_000b7624:
      var_26 = var_8;
      puVar8 = var_31;
      var_18 = PTR_LAB_000f52cc;
      var_40 = var_2;
      if (var_7 < 1) {
        var_33 = 0;
        var_68 = (type_12 *)0x0;
        local_ac = (type_20 *)0xffffffff;
      }
      else {
        pTVar48 = (type_21 *)var_14->a;
        var_33 = 0;
        var_68 = (type_12 *)0x0;
        local_ac = (type_20 *)0xffffffff;
        pcVar16 = (type_12 *)(var_5 + 0x514);
        pWVar47 = (type_20 *)0x0;
        do {
          var_2 = pWVar47;
          if ((var_1 == (type_20 *)0x0) &&
             (var_7 = (*(type_12 *)(var_26 + -0x562c))(&sNC,pTVar48->zName), var_7 != 0))
          goto LAB_000b7aa8;
          var_7 = (int)var_4->nCol;
          pCVar41 = pTVar48->aCol;
          if (0 < var_7) {
            var_32 = var_4->aCol;
            var_30 = 0;
            do {
              var_27 = (type_7 *)var_32->zName;
              var_28 = (type_13)*(type_7 *)&pCVar41->zName;
              var_10 = (type_13)*var_27;
              var_29 = var_27;
              pCVar37 = pCVar41;
              if (var_10 == var_28) goto LAB_000b76e8;
              while (puVar8[var_10 + 0x25ac] == puVar8[var_28 + 0x25ac]) {
                while( true ) {
                  var_29 = var_29 + 1;
                  var_28 = (type_13)*(type_7 *)((int)&pCVar37->zName + 1);
                  var_10 = (type_13)*var_29;
                  pCVar37 = (type_19 *)((int)&pCVar37->zName + 1);
                  if (var_10 != var_28) break;
LAB_000b76e8:
                  if (var_10 == 0) {
                    if (var_4->iPKey == var_30) {
                      var_68 = (type_12 *)pTVar48->zName;
                      var_40 = (type_20 *)0x1;
                      local_ac = var_2;
                    }
                    else {
                      if ((var_13 != (type_6 *)0x0) && ((var_32->colFlags & 1) != 0)) {
                        var_19[var_30] = (int)var_2;
                        if (var_7 <= var_30) goto LAB_000b7e5c;
                        pcVar38 = var_4->zName;
                        var_33 = 1;
                        goto LAB_000b7790;
                      }
                      if ((var_32->colFlags & 0x60) != 0) {
                        (*(type_12 *)(var_8 + -0x61d8))
                                  (pParse,var_31 + -0x6824,var_27);
                        goto LAB_000b7aa8;
                      }
                    }
                    var_19[var_30] = (int)var_2;
                    if (var_7 <= var_30) goto LAB_000b7748;
                    pcVar38 = var_4->zName;
                    goto LAB_000b7790;
                  }
                }
              }
              var_30 = var_30 + 1;
              var_32 = var_32 + 1;
            } while (var_30 != var_7);
          }
LAB_000b7748:
          if ((var_13 != (type_6 *)0x0) || (var_7 = (*pcVar16)(pCVar41), var_7 == 0)) {
LAB_000b7e5c:
            (*(type_12 *)(var_8 + -0x61d8))
                      (pParse,var_31 + -0x6800,pCVar41);
            pParse->checkSchema = '\x01';
            goto LAB_000b7aa8;
          }
          var_68 = (type_12 *)pTVar48->zName;
          var_30 = -1;
          pcVar38 = var_4->zName;
          var_40 = (type_20 *)0x1;
          var_27 = var_18 + 0x7028;
          local_ac = var_2;
LAB_000b7790:
          var_7 = (*(type_12 *)(var_8 + -0x5ce4))
                             (pParse,0x17,pcVar38,var_27,psVar43->aDb[(int)local_e0].zDbSName);
          if (var_7 == 1) goto LAB_000b7aa8;
          if (var_7 == 2) {
            var_19[var_30] = -1;
          }
          pWVar47 = (type_20 *)((int)&var_2->pParse + 1);
          pTVar48 = (type_21 *)&pTVar48->pFKey;
        } while ((int)pWVar47 < var_14->nExpr);
      }
      var_10 = (int)var_40->aiCurOnePass + var_33 + -0x14 & 0xff;
      if ((var_4->tabFlags & 0x60) != 0) {
        var_7 = (int)var_4->nCol;
        pcVar16 = (type_12 *)(var_5 + -0x71c);
        do {
          if (var_7 < 1) break;
          bVar6 = false;
          var_30 = 0;
          var_23 = var_19;
          do {
            if ((*var_23 < 0) && ((var_4->aCol[var_30].colFlags & 0x60) != 0)) {
              var_34 = (*pcVar16)(var_4->aCol[var_30].pDflt,var_19,var_40);
              var_7 = (int)var_4->nCol;
              if (var_34 != 0) {
                bVar6 = true;
                *var_23 = 99999;
              }
            }
            var_30 = var_30 + 1;
            var_23 = var_23 + 1;
          } while (var_30 < var_7);
        } while (bVar6);
      }
      var_65 = pParse->db;
      var_7 = -(type_13)(var_4->nModuleArg != 0);
      pcVar16 = (type_12 *)(var_5 + 0x1208);
      *(int *)&pTabList->a[0].colUsed = var_7;
      *(int *)((int)&pTabList->a[0].colUsed + 4) = var_7;
      var_7 = (*pcVar16)(var_65,var_4,var_19,var_10);
      if (var_35 == 5) {
        var_36 = 1;
      }
      var_11 = var_4->pIndex;
      local_78 = var_21;
      if (var_11 != (type_6 *)0x0) {
        pcVar16 = (type_12 *)(var_5 + -0x71c);
        var_30 = 0;
        var_23 = var_21;
        do {
          if ((((var_10 == 0) && (var_7 < 2)) && (var_11 != var_13)) &&
             ((var_11->pPartIdxWhere == (type_4 *)0x0 ||
              (var_34 = (*pcVar16)(var_11->pPartIdxWhere,var_19,var_40), var_34 == 0)))) {
            var_34 = 0;
            if (var_11->nKeyCol != 0) {
              do {
                if (var_11->aiColumn[var_34] < 0) {
                  var_28 = (*pcVar16)(var_11->aColExpr->a[var_34].pExpr,var_19,var_40);
                }
                else {
                  var_28 = (type_13)~var_19[var_11->aiColumn[var_34]] >> 0x1f;
                }
                var_34 = var_34 + 1;
                if (var_28 != 0) {
                  var_34 = pParse->nMem + 1;
                  pParse->nMem = (type_13)var_11->nColumn + var_34;
                  if ((var_35 == 0xb) && (var_11->var_35 == '\x05')) {
                    var_36 = 1;
                  }
                  goto LAB_000b79b4;
                }
              } while (var_34 < (int)(type_13)var_11->nKeyCol);
            }
LAB_000b79c4:
            var_34 = 0;
            *(type_18 *)((int)piVar13 + var_30 + 1) = 0;
          }
          else {
            var_34 = pParse->nMem + 1;
            pParse->nMem = (type_13)var_11->nColumn + var_34;
LAB_000b79b4:
            if (var_34 == 0) goto LAB_000b79c4;
          }
          var_11 = var_11->pNext;
          var_30 = var_30 + 1;
          *var_23 = var_34;
          var_23 = var_23 + 1;
        } while (var_11 != (type_6 *)0x0);
        local_78 = var_21 + var_30;
      }
      var_30 = pParse->nMem + 1;
      pParse->nMem = var_30;
      *local_78 = var_30;
      if (var_36 != 0) {
        (*(type_12 *)PTR_memset_000f5450)(piVar13,1,var_66);
      }
      if (pParse->nested == '\0') {
        *(type_9 *)((int)&(var_24->sWC).aStatic[1].pWC + 2) =
             *(type_9 *)((int)&(var_24->sWC).aStatic[1].pWC + 2) & 0xf7ff | 0x800;
      }
      (*(type_12 *)(var_37 + -0x5698))
                (pParse,var_38 != (type_24 *)0x0 || var_7 != 0,local_e0);
      var_30 = var_4->nModuleArg;
      if (var_30 == 0) {
        var_39 = pParse->nMem;
        local_80 = *local_78;
        local_e0 = (type_14 *)(var_39 + 1);
        var_34 = (int)var_4->nCol;
        pParse->nMem = (int)local_e0;
        local_c8 = local_e0;
        if (var_33 == 0) {
          if ((var_38 == (type_24 *)0x0) && (var_7 == 0)) {
            var_39 = 0;
            var_65 = local_e0;
            if (var_40 == (type_20 *)0x0) goto LAB_000b7c48;
          }
          else {
            var_39 = var_39 + 2;
            var_65 = (type_14 *)((int)&local_e0->pVfs + var_34);
            pParse->nMem = (int)var_65;
          }
LAB_000b7c3c:
          local_c8 = (type_14 *)((int)&var_65->pVfs + 1);
          pParse->nMem = (int)local_c8;
          var_65 = local_c8;
        }
        else {
          var_39 = var_39 + 2;
          var_65 = (type_14 *)((int)&local_e0->pVfs + var_34);
          pParse->nMem = (int)var_65;
          if (((var_10 != 0) || (var_38 != (type_24 *)0x0)) || (var_7 != 0)) goto LAB_000b7c3c;
        }
LAB_000b7c48:
        local_90 = (type_15 **)((int)&var_65->pVfs + 1);
        pParse->nMem = (int)((int)&var_65->pVfs + var_34);
      }
      else {
        local_80 = 0;
        var_39 = 0;
        local_90 = (type_15 **)0x0;
        local_c8 = (type_14 *)0x0;
        local_e0 = (type_14 *)0x0;
      }
      var_2 = var_40;
      if (var_41 == (type_22 *)0x0) {
        if (var_1 == (type_20 *)0x0) goto LAB_000b7cac;
      }
      else {
        sContext.zAuthContext = pParse->zAuthContext;
        pParse->zAuthContext = var_4->zName;
        sContext.pParse = pParse;
        if (var_1 == (type_20 *)0x0) {
          var_42
                    (pParse,var_4,(type_4 *)var_4->pSchema,(type_3 *)var_15,(type_4 *)var_49,
                     (int)in_stack_fffffed4,(type_21 *)in_stack_fffffed8);
LAB_000b7cac:
          var_30 = (*(type_12 *)(var_8 + -0x562c))(&sNC,var_15);
          pTVar48 = var_4;
          if (var_30 != 0) goto LAB_000b7aa8;
          var_30 = var_4->nModuleArg;
        }
      }
      if (var_30 == 0) {
        var_43 = psVar43->flags;
        var_9 = (type_14 *)(pParse->nLabel - 1);
        pParse->nLabel = (int)var_9;
        if (((((var_43 & 0x100000000) == 0) || (pParse->pTriggerTab != (type_21 *)0x0)) ||
            (pParse->nested != '\0')) || (var_17 != (type_23 *)0x0)) {
          var_63 = 0;
        }
        else {
          var_63 = pParse->nMem + 1;
          pcVar16 = (type_12 *)(var_25 + -0x47a8);
          pParse->nMem = var_63;
          (*pcVar16)(var_24,0x45,0,var_63,0);
        }
        if ((var_1 == (type_20 *)0x0) && ((var_4->tabFlags & 0x80) == 0)) {
          local_f4 = (type_12 *)(var_25 + -0x47a8);
          (*local_f4)(var_24,0x48,0,local_80,local_e0);
          local_98 = (type_14 *)0x0;
          local_dc = (type_14 *)0x0;
          if (var_17 != (type_23 *)0x0) {
            var_44 = 0;
LAB_000b7d5c:
            (*(type_12 *)(var_37 + 0x5054))(pParse,var_15,var_9,0x10);
            var_28 = var_4->tabFlags;
            local_cc = (type_14 *)0x0;
            var_46 = (type_14 *)0x0;
            var_61 = 0;
            var_45 = '\x01';
            var_48 = (type_20 *)0x0;
LAB_000b7d98:
            if ((var_28 & 0x80) == 0) {
              (*(type_12 *)(var_25 + -0x47a8))(var_24,0x7f,var_49,local_e0,0);
              local_a4 = 0;
              var_46 = local_dc;
              local_dc = local_98;
            }
            else {
LAB_000b7da8:
              local_a4 = var_44;
              if (0 < var_44) {
LAB_000b7db0:
                pcVar16 = (type_12 *)(var_37 + 0x7574);
                var_30 = 0;
                var_65 = local_dc;
                do {
                  psVar40 = (short *)((int)var_13->aiColumn + var_30);
                  var_30 = var_30 + 2;
                  (*pcVar16)(var_24,var_4,var_49,(int)*psVar40,var_65);
                  var_65 = (type_14 *)((int)&var_65->pVfs + 1);
                  local_a4 = var_44;
                } while (var_44 << 1 != var_30);
              }
              var_44 = local_a4;
              if (var_45 == '\0') {
                local_f4 = (type_12 *)(var_25 + -0x47a8);
LAB_000b9410:
                uVar27 = (*(type_12 *)(var_5 + 0x6954))(psVar43,var_13);
                uVar29 = (*local_f4)(var_24,0x5b,local_dc,var_44,local_98);
                (*(type_12 *)(var_25 + -0x37ac))(var_24,uVar29,uVar27,var_44);
                (*(type_12 *)(var_25 + -0x4660))
                          (var_24,0x82,local_cc,local_98,local_dc,var_44);
                var_46 = local_dc;
                local_a4 = 0;
                var_45 = '\0';
                local_dc = local_98;
              }
              else if (var_46 == (type_14 *)0x0) {
                var_46 = local_dc;
              }
              else {
                (*(type_12 *)(var_5 + 0x29e8))
                          (var_24->pParse,&(var_24->sWC).aStatic[0].truthProb,var_46);
                var_46 = local_dc;
              }
            }
            goto LAB_000b8330;
          }
          var_46 = (type_14 *)0x0;
          local_cc = (type_14 *)0x0;
          var_44 = 0;
LAB_000b9260:
          in_stack_fffffed4 = (type_21 *)0x1004;
          if (pParse->nested == '\0') {
            if (var_38 == (type_24 *)0x0) {
              in_stack_fffffed4 = (type_21 *)0x1004;
              if (var_7 == 0) {
                if (var_10 != 0) goto LAB_000b9278;
                in_stack_fffffed4 = (type_21 *)0x100c;
                if (var_36 != 0) {
                  in_stack_fffffed4 = (type_21 *)0x1004;
                }
              }
            }
            else {
LAB_000b9278:
              in_stack_fffffed4 = (type_21 *)0x1004;
            }
          }
          in_stack_fffffed8 = local_c4;
          var_48 = var_47(pParse,pTabList,var_15,(type_3 *)0x0,(type_3 *)0x0,
                                       (type_27)in_stack_fffffed4,(int)local_c4);
          pTVar48 = var_4;
          if (var_48 == (type_20 *)0x0) goto LAB_000b7aa8;
          aiCurOnePass[0] = var_48->aiCurOnePass[0];
          aiCurOnePass[1] = var_48->aiCurOnePass[1];
          var_45 = var_48->eOnePass;
          var_61 = *(type_13 *)&var_48->field_0x30 >> 0x1f;
          if (var_45 == '\x01') {
            var_28 = var_4->tabFlags;
            goto LAB_000b7d98;
          }
          pPVar26 = pParse->pToplevel;
          if (pParse->pToplevel == (type_1 *)0x0) {
            pPVar26 = pParse;
          }
          pPVar26->isMultiWrite = '\x01';
          var_28 = var_4->tabFlags;
          if (var_45 == '\x02') {
            if (((aiCurOnePass[1] < 0) || (var_49 == (type_20 *)aiCurOnePass[1])) ||
               (*(char *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) == '\0'))
            goto LAB_000b7d98;
            if ((var_28 & 0x80) == 0) {
              (*local_f4)(var_24,0x7f,var_49,local_e0,0);
              goto LAB_000b937c;
            }
            if (0 < var_44) {
              var_45 = '\0';
              goto LAB_000b7db0;
            }
            goto LAB_000b9410;
          }
          if ((var_28 & 0x80) != 0) goto LAB_000b7da8;
          (*local_f4)(var_24,0x7f,var_49,local_e0,0);
          if (var_45 == '\0') {
LAB_000b937c:
            var_30 = pParse->nMem + 1;
            pParse->nMem = var_30;
            *local_78 = var_30;
            (*local_f4)(var_24,0x93,local_80,local_e0,0);
            var_45 = '\0';
          }
          var_46 = local_dc;
          local_a4 = 0;
          local_dc = local_98;
LAB_000b8ff0:
          if (var_45 == '\x02') {
            if (var_41 == (type_22 *)0x0) {
LAB_000b9784:
              if (-1 < aiCurOnePass[0]) {
                *(type_18 *)((int)piVar13 + (aiCurOnePass[0] - (int)local_d4)) = 0;
              }
              if (-1 < aiCurOnePass[1]) {
                *(type_18 *)((int)piVar13 + (aiCurOnePass[1] - (int)local_d4)) = 0;
              }
              if ((var_45 == '\x02') && (0 < (int)(var_20 + (~aiCurOnePass[1] >> 0x1f)))) {
                var_30 = (*local_f4)(var_24,0x11,0,0,0);
                if (var_4->nModuleArg == 0) goto LAB_000b908c;
                goto LAB_000b90c8;
              }
              if (var_4->nModuleArg == 0) goto LAB_000b9084;
LAB_000b97d4:
              if (((type_20 *)aiCurOnePass[0] != var_49) &&
                 ((type_20 *)aiCurOnePass[1] != var_49)) {
                (*(type_12 *)(var_25 + -0x4660))
                          (var_24,0x1d,var_49,var_9,local_dc,local_a4);
              }
LAB_000b902c:
              local_d4 = var_9;
              if (var_45 != '\x01') goto LAB_000b9038;
            }
            else {
LAB_000b9038:
              local_d4 = (type_14 *)(pParse->nLabel - 1);
              pParse->nLabel = (int)local_d4;
            }
            var_65 = local_dc;
            if (var_13 == (type_6 *)0x0) {
              var_65 = local_e0;
            }
            (*local_f4)(var_24,0x32,var_65,var_9,0);
            var_65 = local_d4;
            goto LAB_000b8340;
          }
          (*(type_12 *)(var_8 + 0x4c88))(var_48);
LAB_000b9014:
          if (var_41 == (type_22 *)0x0) {
            if (var_45 != '\0') goto LAB_000b9784;
            if (var_4->nModuleArg != 0) goto LAB_000b911c;
LAB_000b9084:
            var_30 = 0;
LAB_000b908c:
            (*(type_12 *)(var_50 + 0x7a78))(pParse,var_4,0x61,0,local_d4,piVar13,0,0);
LAB_000b90c8:
            if (var_30 != 0) {
              var_51 = *(int *)&(var_24->sWC).aStatic[0].eOperator;
              var_34 = var_51 + -1;
              if (var_34 == var_30) {
                (var_24->sWC).aStatic[0].eOperator = (short)((type_13)var_30 >> 0x10);
                (var_24->sWC).aStatic[0].nChild = (char)((type_13)var_30 >> 8);
                (var_24->sWC).aStatic[0].eMatchOp = (char)var_30;
              }
              else {
                if (-1 < var_30) {
                  var_34 = var_30;
                }
                if (*(char *)((int)&var_24->pParse->writeMask + 1) == '\0') {
                  var_18 = (type_11 *)
                            (var_34 * 0x14 + *(int *)&(var_24->sWC).aStatic[0].truthProb);
                }
                else {
                  var_18 = var_52 + 0x5860;
                }
                *(int *)(var_18 + 8) = var_51;
              }
            }
            if (var_45 != '\0') goto LAB_000b97d4;
          }
          else if (var_45 != '\0') goto LAB_000b902c;
LAB_000b911c:
          if (var_13 == (type_6 *)0x0) {
            if (var_1 != (type_20 *)0x0) {
              local_d4 = (type_14 *)(pParse->nLabel - 1);
              pParse->nLabel = (int)local_d4;
              (*local_f4)(var_24,0x25,local_cc,var_9,0);
              local_a0._0_2_ = (var_24->sWC).aStatic[0].eOperator;
              local_a0._2_1_ = (var_24->sWC).aStatic[0].nChild;
              local_a0._3_1_ = (var_24->sWC).aStatic[0].eMatchOp;
              if (var_41 == (type_22 *)0x0) {
                (*local_f4)(var_24,0x7f,local_cc,local_e0,0);
                (*local_f4)(var_24,0x20,var_49,local_d4,local_e0);
              }
              goto LAB_000b916c;
            }
            local_d4 = (type_14 *)(*local_f4)(var_24,0x2a,local_80,var_9,local_e0);
            (*local_f4)(var_24,0x20,var_49,local_d4,local_e0);
            local_a0 = 0;
LAB_000b9a58:
            if (var_40 == (type_20 *)0x0) goto LAB_000b839c;
LAB_000b8358:
            if (pParse->pVdbe != (type_15 *)0x0) {
              (*(type_12 *)(var_37 + 0x7228))(pParse,var_68,local_c8);
            }
            goto LAB_000b837c;
          }
          local_d4 = (type_14 *)(pParse->nLabel - 1);
          pParse->nLabel = (int)local_d4;
          (*local_f4)(var_24,0x25,local_cc,var_9,0);
          local_a0._0_2_ = (var_24->sWC).aStatic[0].eOperator;
          local_a0._2_1_ = (var_24->sWC).aStatic[0].nChild;
          local_a0._3_1_ = (var_24->sWC).aStatic[0].eMatchOp;
          if (var_1 == (type_20 *)0x0) {
            (*local_f4)(var_24,0x7e,local_cc,local_dc,0);
            (*(type_12 *)(var_25 + -0x4660))(var_24,0x1d,var_49,local_d4,local_dc,0);
            goto LAB_000b9a58;
          }
          var_30 = 0;
          if (var_41 == (type_22 *)0x0) {
            for (; var_30 < var_44; var_30 = var_30 + 1) {
              (*local_f4)(var_24,0x59,local_cc,var_30,
                          (type_18 *)((int)&var_46->pVfs + var_30));
            }
            (*(type_12 *)(var_25 + -0x4660))
                      (var_24,0x1d,var_49,local_d4,var_46,var_44);
          }
LAB_000b916c:
          if (var_40 != (type_20 *)0x0) goto LAB_000b9174;
        }
        else {
          if (var_13 == (type_6 *)0x0) {
            var_44 = 0;
          }
          else {
            var_44 = (int)(short)var_13->nKeyCol;
          }
          local_a4 = var_44;
          local_dc = (type_14 *)(pParse->nMem + 1);
          local_98 = (type_14 *)((int)var_1->aiCurOnePass + pParse->nMem + var_44 + -0x13);
          pParse->nMem = (int)local_98;
          if (var_17 == (type_23 *)0x0) {
            var_30 = 0;
            if (var_41 != (type_22 *)0x0) {
              var_30 = (int)var_4->nCol;
            }
            local_cc = (type_14 *)pParse->nTab;
            var_30 = (int)var_1->aiCurOnePass + var_30 + var_44 + -0x14;
            pParse->nTab = (int)((int)&local_cc->pVfs + 1);
            var_18 = var_25;
            if (var_13 == (type_6 *)0x0) {
              var_46 = (type_14 *)
                         (*(type_12 *)(var_25 + -0x47a8))(var_24,100,local_cc,var_30,0);
            }
            else {
              pcVar16 = (type_12 *)(var_25 + -0x47a8);
              (*pcVar16)(var_24,0x48,0,local_dc,
                         (type_18 *)((int)local_dc->aLimit + var_44 + -0x6d));
              var_46 = (type_14 *)(*pcVar16)(var_24,100,local_cc,var_30,0);
              var_34 = (*(type_12 *)(var_53 + -0x1400))(pParse,var_13);
              if (var_34 != 0) {
                pcVar16 = (type_12 *)(var_5 + 0x280c);
                *(short *)(var_34 + 8) = (short)var_30;
                (*pcVar16)(var_24,var_34,0xfffffff7);
              }
            }
            local_f4 = (type_12 *)(var_18 + -0x47a8);
            if (var_1 == (type_20 *)0x0) goto LAB_000b9260;
            if (var_41 != (type_22 *)0x0) {
              var_49 = (type_20 *)local_cc;
            }
            (*(type_12 *)(var_54 + -0x3ed4))
                      (pParse,local_cc,var_13,var_14,pTabList,var_15);
          }
          else {
            if (var_1 == (type_20 *)0x0) goto LAB_000b7d5c;
            local_cc = (type_14 *)0x0;
          }
          var_45 = '\0';
          pPVar26 = pParse->pToplevel;
          if (pParse->pToplevel == (type_1 *)0x0) {
            pPVar26 = pParse;
          }
          var_48 = (type_20 *)0x0;
          var_61 = 1;
          pPVar26->isMultiWrite = '\x01';
          var_46 = local_dc;
LAB_000b8330:
          var_65 = var_9;
          if (var_17 == (type_23 *)0x0) {
            local_f4 = (type_12 *)(var_25 + -0x47a8);
            if (var_1 == (type_20 *)0x0) goto LAB_000b8ff0;
            goto LAB_000b9014;
          }
LAB_000b8340:
          local_d4 = var_65;
          local_a0 = 0;
          if (var_40 != (type_20 *)0x0) {
            local_f4 = (type_12 *)(var_25 + -0x47a8);
            if (var_1 == (type_20 *)0x0) goto LAB_000b8358;
LAB_000b9174:
            (*local_f4)(var_24,0x59,local_cc,local_ac,local_c8);
LAB_000b837c:
            (*local_f4)(var_24,0xf,local_c8,0,0);
          }
        }
LAB_000b839c:
        if (var_33 == 0) {
          if (var_7 != 0) goto LAB_000b8840;
          if (var_38 != (type_24 *)0x0) goto LAB_000b8838;
          var_68 = (type_12 *)(var_55 + -0x2fdc);
        }
        else {
          var_28 = 0;
          if (var_7 != 0) {
LAB_000b8840:
            if ((pParse->db->flags & 0x4000) == 0) {
LAB_000b8838:
              var_28 = 0;
            }
            else {
              var_28 = (*(type_12 *)(var_50 + 0x7450))(pParse,var_4);
            }
          }
          var_68 = (type_12 *)(var_55 + -0x2fdc);
          var_57 = var_56(pParse,(type_28 *)var_38,var_14,0,3,var_4,var_35);
          var_18 = var_25;
          if (0 < var_4->nCol) {
            local_f4 = (type_12 *)0x0;
            var_58 = 0;
            pcVar16 = (type_12 *)(var_5 + 0xf74);
            pcVar24 = (type_12 *)(var_37 + 0x7574);
            do {
              var_30 = (int)(short)var_58;
              if ((var_4->tabFlags & 0x20) != 0) {
                var_30 = (*pcVar16)(var_4,var_30);
              }
              if (((var_57 | var_28) == 0xffffffff) ||
                 ((((int)var_58 < 0x20 && ((1 << (var_58 & 0x1f) & (var_57 | var_28)) != 0)) ||
                  ((*(type_9 *)((int)&var_4->aCol->colFlags + (int)local_f4) & 1) != 0)))) {
                (*pcVar24)(var_24,var_4,var_49,var_58,var_30 + var_39);
              }
              else {
                (*(type_12 *)(var_18 + -0x47a8))(var_24,0x48,0,var_30 + var_39,0);
              }
              var_58 = var_58 + 1;
              local_f4 = (type_12 *)((int)local_f4 + 0x14);
            } while ((int)var_58 < (int)var_4->nCol);
          }
          if ((var_40 == (type_20 *)0x0) && (var_13 == (type_6 *)0x0)) {
            (*(type_12 *)(var_25 + -0x47a8))(var_24,0x4d,local_e0,local_c8,0);
          }
        }
        var_28 = (*var_68)(pParse,var_38,var_14,1,1,var_4,var_35);
        var_18 = var_37;
        var_30 = (int)var_4->nCol;
        if (0 < var_30) {
          var_58 = 0;
          pcVar16 = (type_12 *)(var_37 + 0x7574);
          pcVar24 = (type_12 *)(var_25 + -0x47a8);
          ppVVar49 = local_90;
          do {
            if (var_58 == (int)var_4->iPKey) {
LAB_000b8640:
              (*pcVar24)(var_24,0x48,0,ppVVar49,0);
              var_30 = (int)var_4->nCol;
            }
            else {
              var_59 = var_4->aCol[var_58].colFlags;
              if ((var_59 & 0x60) == 0) {
                var_34 = var_19[var_58];
                if (var_34 < 0) {
                  if ((((var_60 & 1U) != 0) && ((int)var_58 < 0x20)) &&
                     ((var_28 >> (var_58 & 0x1f) & 1) == 0)) goto LAB_000b8640;
                  (*pcVar16)(var_24,var_4,var_49,var_58,ppVVar49);
                  var_30 = (int)var_4->nCol;
                  var_61 = 0;
                }
                else if (var_1 == (type_20 *)0x0) {
                  if (pParse->pVdbe != (type_15 *)0x0) {
                    (*(type_12 *)(var_18 + 0x7228))(pParse,var_14->a[var_34].pExpr,ppVVar49);
                    var_30 = (int)var_4->nCol;
                  }
                }
                else {
                  var_51 = var_44;
                  if (var_41 != (type_22 *)0x0) {
                    var_51 = var_30;
                  }
                  (*pcVar24)(var_24,0x59,local_cc,var_34 + var_51,ppVVar49);
                  var_30 = (int)var_4->nCol;
                }
              }
              else if ((var_59 & 0x20) != 0) {
                ppVVar49 = (type_15 **)((int)ppVVar49 + -1);
              }
            }
            var_58 = var_58 + 1;
            ppVVar49 = (type_15 **)((int)ppVVar49 + 1);
          } while ((int)var_58 < var_30);
        }
        if ((var_4->tabFlags & 0x60) != 0) {
          (*(type_12 *)(var_54 + -0x7554))(pParse,local_90,var_4);
        }
        if ((var_60 & 1U) == 0) {
          var_2 = (type_20 *)(var_55 + -0x2d3c);
          if (var_41 == (type_22 *)0x0) {
LAB_000b8da4:
            (*(type_12 *)(var_54 + -0x2f14))
                      (pParse,var_4,var_21,var_49,local_c4,local_c8,local_e0,var_10,
                       var_35 & 0xff,local_d4,&var_36,var_19,0);
            if ((var_36 != 0) || (var_10 != 0)) {
              if (var_13 == (type_6 *)0x0) {
                (*(type_12 *)(var_25 + -0x47a8))(var_24,0x20,var_49,local_d4,local_e0);
              }
              else {
                (*(type_12 *)(var_25 + -0x4660))
                          (var_24,0x1d,var_49,local_d4,local_dc,local_a4);
              }
            }
            if (var_7 == 0) {
              (*(type_12 *)(var_54 + -0x46bc))
                        (pParse,var_4,var_49,local_c4,var_21,0xffffffff);
              if (var_61 != 0) {
LAB_000b8f88:
                (*(type_12 *)(var_25 + -0x47a8))(var_24,0x87,var_49,0,0);
                goto LAB_000b8fac;
              }
              if (var_10 != 0) goto LAB_000b8ea8;
            }
            else {
              (*(type_12 *)(var_54 + -0x3a44))(pParse,var_4,local_e0,0,var_19,var_10);
              (*(type_12 *)(var_54 + -0x46bc))
                        (pParse,var_4,var_49,local_c4,var_21,0xffffffff);
              if (var_61 != 0) goto LAB_000b8f88;
LAB_000b8fac:
              if ((1 < var_7) || (var_10 != 0)) {
LAB_000b8ea8:
                (*(type_12 *)(var_25 + -0x47a8))(var_24,0x7a,var_49,0,0);
              }
              if (var_7 != 0) {
                (*(type_12 *)(var_54 + -0x3a44))(pParse,var_4,0,local_c8,var_19,var_10);
                if (var_45 == '\x02') {
                  uVar27 = 6;
                }
                else {
                  uVar27 = 4;
                }
                (*(type_12 *)(var_50 + 0x645c))
                          (pParse,var_4,var_49,local_c4,local_c8,var_21,uVar27,0,0);
                if ((pParse->db->flags & 0x4000) != 0) {
                  (*(type_12 *)(var_54 + -0x15ac))
                            (pParse,var_4,var_14,local_e0,var_19,var_10);
                }
                goto LAB_000b8698;
              }
            }
            if (var_45 == '\x02') {
              uVar27 = 6;
            }
            else {
              uVar27 = 4;
            }
            (*(type_12 *)(var_50 + 0x645c))
                      (pParse,var_4,var_49,local_c4,local_c8,var_21,uVar27,0,0);
          }
        }
        else {
          (*(type_12 *)(var_25 + -0x336c))(var_24,var_4,local_90);
          var_2 = (type_20 *)(var_55 + -0x2d3c);
          var_62
                    (pParse,(type_28 *)var_38,0x7f,var_14,1,var_4,(int)local_e0,var_35,
                     (int)local_d4);
          if (var_41 == (type_22 *)0x0) {
            if (var_13 == (type_6 *)0x0) {
              (*(type_12 *)(var_25 + -0x47a8))(var_24,0x20,var_49,local_d4,local_e0);
            }
            else {
              (*(type_12 *)(var_25 + -0x4660))
                        (var_24,0x1d,var_49,local_d4,local_dc,local_a4);
            }
            var_34 = (int)var_4->nCol;
            pSVar51 = (type_22 *)(var_37 + 0x7574);
            ppVVar49 = local_90;
            var_30 = 0;
            while (var_30 < var_34) {
              var_59 = var_4->aCol[var_30].colFlags;
              if ((var_59 & 0x60) == 0) {
                if ((-1 < var_19[var_30]) || (var_30 == var_4->iPKey)) goto LAB_000b95b4;
                (*(type_12 *)pSVar51)(var_24,var_4,var_49,var_30,ppVVar49);
                var_34 = (int)var_4->nCol;
                ppVVar49 = (type_15 **)((int)ppVVar49 + 1);
                var_30 = var_30 + 1;
                var_41 = pSVar51;
              }
              else {
                if ((var_59 & 0x20) != 0) {
                  ppVVar49 = (type_15 **)((int)ppVVar49 + -1);
                }
LAB_000b95b4:
                ppVVar49 = (type_15 **)((int)ppVVar49 + 1);
                var_30 = var_30 + 1;
              }
            }
            if ((var_4->tabFlags & 0x60) != 0) {
              (*(type_12 *)(var_54 + -0x7554))(pParse,local_90,var_4);
            }
            goto LAB_000b8da4;
          }
        }
LAB_000b8698:
        if (var_63 != 0) {
          (*(type_12 *)(var_25 + -0x47a8))(var_24,0x52,var_63,1,0);
        }
        in_stack_fffffed4 = var_4;
        in_stack_fffffed8 = local_e0;
        (*(type_12 *)var_2)(pParse,var_38,0x7f,var_14,2,var_4,local_e0,var_35,local_d4);
        if (var_45 == '\x01') {
LAB_000b881c:
          var_1 = (type_20 *)(var_25 + -0x4a64);
        }
        else if (var_45 == '\x02') {
          var_1 = (type_20 *)(var_25 + -0x4a64);
          (*(type_12 *)var_1)(var_24,local_d4);
          (*(type_12 *)(var_8 + 0x4c88))(var_48);
        }
        else {
          if ((var_13 == (type_6 *)0x0) && (var_1 == (type_20 *)0x0)) {
            (*(type_12 *)(var_25 + -0x47a8))(var_24,0xb,0,local_d4,0);
            goto LAB_000b881c;
          }
          var_1 = (type_20 *)(var_25 + -0x4a64);
          (*(type_12 *)var_1)(var_24,local_d4);
          (*(type_12 *)(var_25 + -0x47a8))(var_24,5,local_cc,local_a0,0);
          var_2 = var_24;
        }
        (*(type_12 *)var_1)(var_24,var_9);
        if ((((pParse->nested == '\0') && (pParse->pTriggerTab == (type_21 *)0x0)) &&
            (var_17 == (type_23 *)0x0)) && (pParse->pAinc != (type_29 *)0x0)) {
          (*(type_12 *)(var_50 + 0x78e0))(pParse);
        }
        pTVar48 = var_4;
        if (var_63 != 0) {
          (*(type_12 *)(var_25 + -0x47a8))(var_24,0x50,var_63,1,0);
          (*(type_12 *)(var_5 + 0x7e44))(var_24,1);
          var_1 = var_24;
          if (*(char *)((int)&var_24->pParse->writeMask + 1) == '\0') {
            (*(type_12 *)(var_53 + -0x1e28))
                      (var_24,0,0,var_31 + -0x67ec,0);
          }
        }
      }
      else {
        var_38 = (type_24 *)var_4->pVTable;
        var_1 = (type_20 *)pParse->pVdbe;
        var_65 = pParse->db;
        if (var_38 != (type_24 *)0x0) {
          var_64 = (type_14 *)var_38->schema_cookie;
          while ((var_64 != var_65 &&
                 (var_38 = *(type_24 **)&var_38->idxHash, var_38 != (type_24 *)0x0))) {
            var_64 = (type_14 *)var_38->schema_cookie;
          }
        }
        var_17 = (type_23 *)pParse->nTab;
        var_34 = var_4->nCol + 2;
        var_7 = pTabList->a[0].iCursor;
        pcVar16 = (type_12 *)(var_25 + -0x47a8);
        pParse->nTab = (int)&var_17->useSortingIdx;
        var_49 = (type_20 *)(*pcVar16)(var_1,100,var_17,var_34,0);
        local_e0 = (type_14 *)pParse->nMem;
        var_30 = pTabList->nSrc;
        var_66 = (type_18 *)((int)&local_e0->pVfs + var_34);
        var_41 = (type_22 *)((int)&local_e0->pVfs + 1);
        pParse->nMem = (int)var_66;
        if (var_30 < 2) {
          puVar32 = var_66 + 2;
          in_stack_fffffed8 = (type_14 *)0x0;
          pParse->nMem = (int)puVar32;
          in_stack_fffffed4 = (type_21 *)0x4;
          var_2 = var_47(pParse,pTabList,var_15,(type_3 *)0x0,(type_3 *)0x0,4,0);
          pTVar48 = var_4;
          if (var_2 == (type_20 *)0x0) goto LAB_000b7aa8;
          var_30 = (int)var_4->nCol;
          local_d4 = (type_14 *)((int)&local_e0->pVfs + 3);
          var_51 = 0;
          pcVar24 = (type_12 *)(var_37 + 0x7228);
          var_21 = var_19;
          while (var_51 < var_30) {
            if (*var_21 < 0) {
              (*pcVar16)(var_1,0xa6,var_7,var_51,(int)&local_d4->pVfs + var_51);
              var_67 = *(int *)&(var_1->sWC).aStatic[0].eOperator;
              if (var_67 < 1) {
                var_30 = (int)var_4->nCol;
                var_51 = var_51 + 1;
                var_21 = var_21 + 1;
              }
              else {
                var_51 = var_51 + 1;
                var_21 = var_21 + 1;
                var_30 = (int)var_4->nCol;
                *(type_30 *)
                 (var_67 * 0x14 + *(int *)&(var_1->sWC).aStatic[0].truthProb + -0x12) = 1;
              }
            }
            else {
              if (pParse->pVdbe != (type_15 *)0x0) {
                (*pcVar24)(pParse,var_14->a[*var_21].pExpr);
                var_30 = (int)var_4->nCol;
              }
              var_51 = var_51 + 1;
              var_21 = var_21 + 1;
            }
          }
          if ((var_4->tabFlags & 0x80) == 0) {
            (*pcVar16)(var_1,0x7f,var_7,var_41,0);
            if (var_68 == (type_12 *)0x0) {
              (*pcVar16)(var_1,0x7f,var_7,(type_18 *)((int)&local_e0->pVfs + 2),0);
            }
            else if (pParse->pVdbe != (type_15 *)0x0) {
              (*(type_12 *)(var_37 + 0x7228))(pParse);
            }
          }
          else {
            var_11 = var_4->pIndex;
            while( true ) {
              if (var_11 == (type_6 *)0x0) {
                    /* WARNING: Does not return */
                pcVar16 = (type_12 *)var_69(0);
                (*pcVar16)();
              }
              if ((var_11->field_0x37 & 0xc0) == 0x80) break;
              var_11 = var_11->pNext;
            }
            local_d4 = (type_14 *)(int)*var_11->aiColumn;
            (*pcVar16)(var_1,0xa6,var_7,local_d4,var_41);
            (*pcVar16)(var_1,0x4e,(int)((int)&local_e0->pVfs + 3) + (int)local_d4,
                       (type_18 *)((int)&local_e0->pVfs + 2),0);
          }
          aiCurOnePass[0] = var_2->aiCurOnePass[0];
          aiCurOnePass[1] = var_2->aiCurOnePass[1];
          var_65 = (type_14 *)(type_13)var_2->eOnePass;
          if (var_65 == (type_14 *)0x0) {
            pPVar26 = pParse->pToplevel;
            if (pParse->pToplevel == (type_1 *)0x0) {
              pPVar26 = pParse;
            }
            pPVar26->isMultiWrite = '\x01';
            (*pcVar16)(var_1,0x5b,var_41,var_34,var_66 + 1);
            (*pcVar16)(var_1,0x78,var_17,puVar32,0);
            (*pcVar16)(var_1,0x79,var_17,var_66 + 1,puVar32);
            goto LAB_000b80d0;
          }
          (*(type_12 *)(var_5 + 0x29e8))
                    (var_1->pParse,&(var_1->sWC).aStatic[0].truthProb,var_49,var_34);
          (*pcVar16)(var_1,0x74,var_7,0,0);
          local_e0 = var_65;
          var_9 = var_65;
        }
        else {
          if (var_68 == (type_12 *)0x0) {
            uVar27 = (*(type_12 *)(var_53 + -0x5d30))(pParse,0x4b,0,0);
          }
          else {
            uVar27 = (*(type_12 *)(var_70 + -0x7698))(var_65);
          }
          local_e0 = (type_14 *)(var_8 + 0x59e4);
          var_7 = (*(type_12 *)local_e0)(pParse->db,0,uVar27);
          if (0 < var_4->nCol) {
            var_49 = (type_20 *)0x1;
            pcVar24 = (type_12 *)(var_53 + -0x5d30);
            pcVar20 = (type_12 *)(var_70 + -0x7698);
            var_24 = (type_20 *)var_19;
            do {
              if (*(int *)var_24 < 0) {
                var_71 = (type_4 *)(*pcVar24)(pParse,0x4b,0,0);
                if (var_71 != (type_4 *)0x0) {
                  var_71->iColumn = (type_31)var_49;
                }
              }
              else {
                var_71 = var_14->a[*(int *)var_24].pExpr;
                if (var_71 != (type_4 *)0x0) {
                  var_71 = (type_4 *)(*pcVar20)(var_65,var_71,0,0);
                }
              }
              var_7 = (*(type_12 *)local_e0)(pParse->db,var_7,var_71);
              var_24 = (type_20 *)((int)var_24 + 4);
              bVar6 = (int)var_49 < (int)var_4->nCol;
              var_49 = (type_20 *)((int)var_49 + 1);
              local_d4 = psVar43;
            } while (bVar6);
          }
          in_stack_fffffed4 = (type_21 *)var_15;
          (*(type_12 *)(var_54 + -0x3ed4))(pParse,var_17,0,var_7,pTabList);
          if (var_7 == 0) {
            var_2 = (type_20 *)0x0;
          }
          else {
            var_2 = (type_20 *)0x0;
            (*(type_12 *)(var_8 + 0x3aa4))(var_65,var_7);
          }
LAB_000b80d0:
          if (pTabList->nSrc == 1) {
            (*(type_12 *)(var_8 + 0x4c88))(var_2);
          }
          var_49 = (type_20 *)(*pcVar16)(var_1,0x25,var_17,0,0);
          var_7 = 0;
          if (0 < var_34) {
            do {
              var_30 = var_7 + 1;
              (*pcVar16)(var_1,0x59,var_17,var_7,(int)var_41->addrOpenEphm + var_7 + -0x14)
              ;
              var_7 = var_30;
            } while (var_34 != var_30);
          }
        }
        pWVar47 = var_49;
        (*(type_12 *)(var_5 + 0x6b18))(pParse,var_4);
        uVar27 = (*pcVar16)(var_1,10,0,var_34,var_41);
        (*(type_12 *)(var_25 + -0x37ac))(var_1,uVar27,var_38,0xfffffff4);
        if (var_35 == 0xb) {
          var_35 = 2;
        }
        var_7 = *(int *)&(var_1->sWC).aStatic[0].eOperator;
        if (0 < var_7) {
          *(short *)(var_7 * 0x14 + *(int *)&(var_1->sWC).aStatic[0].truthProb + -0x12) =
               (short)var_35;
        }
        pPVar26 = pParse->pToplevel;
        if (pParse->pToplevel == (type_1 *)0x0) {
          pPVar26 = pParse;
        }
        pPVar26->mayAbort = '\x01';
        if (var_9 == (type_14 *)0x0) {
          (*pcVar16)(var_1,5,var_17,(type_18 *)((int)&var_49->pParse + 1),0);
          pVVar22 = *(type_15 **)&(var_1->sWC).aStatic[0].eOperator;
          if ((int)var_49 < 0) {
            var_49 = (type_20 *)&pVVar22[-1].field_0xdf;
          }
          if (*(char *)((int)&var_1->pParse->writeMask + 1) == '\0') {
            pParse = (type_1 *)((int)var_49 * 0x14 + *(int *)&(var_1->sWC).aStatic[0].truthProb);
          }
          else {
            pParse = (type_1 *)(var_52 + 0x5860);
          }
          pParse->pVdbe = pVVar22;
          (*pcVar16)(var_1,0x74,var_17,0,0);
          var_2 = pWVar47;
          pTVar48 = var_4;
        }
        else {
          (*(type_12 *)(var_8 + 0x4c88))(var_2);
          pTVar48 = var_4;
        }
      }
    }
LAB_000b7aa8:
    pPVar26 = sContext.pParse;
    if (sContext.pParse != (type_1 *)0x0) {
      sContext.pParse = (type_1 *)0x0;
      pPVar26->zAuthContext = sContext.zAuthContext;
    }
    (*(type_12 *)(var_5 + -0x7728))(psVar43,var_19);
    var_4 = pTVar48;
    unaff_s5 = pParse;
  } while( true );
}


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

void MASKED(uint *param_1,int *param_2,uint *param_3,int param_4,uint param_5,uint param_6)

{
  byte bVar1;
  char cVar2;
  short sVar3;
  ushort uVar4;
  bool bVar5;
  undefined *puVar6;
  undefined *puVar7;
  undefined *puVar8;
  int *piVar9;
  uint *puVar10;
  int *piVar11;
  uint uVar12;
  code *pcVar13;
  int iVar14;
  int iVar15;
  code *pcVar16;
  uint *puVar17;
  undefined4 uVar18;
  undefined *puVar19;
  uint *puVar20;
  undefined4 uVar21;
  uint uVar22;
  code *pcVar23;
  byte *pbVar24;
  uint uVar25;
  byte *pbVar26;
  byte *pbVar27;
  short *psVar28;
  byte *pbVar29;
  undefined4 *puVar30;
  int iVar31;
  code *pcVar32;
  uint uVar33;
  code *pcVar34;
  code *unaff_s3;
  uint *unaff_s4;
  uint *unaff_s5;
  int iVar35;
  code *pcVar36;
  uint local_100;
  code *local_f8;
  code *local_f4;
  code *local_f0;
  uint local_ec;
  code *local_e8;
  uint *local_e4;
  code *local_e0;
  code *local_dc;
  code *local_d8;
  code *local_d4;
  int local_d0;
  code *local_cc;
  code *local_c8;
  code *local_c4;
  code *local_b4;
  code *local_b0;
  code *local_ac;
  uint local_a8;
  int local_a4;
  int local_a0;
  code *local_9c;
  code *local_98;
  int local_94;
  code *local_90;
  code *local_8c;
  uint local_88;
  int local_84;
  uint local_80;
  int local_7c;
  uint *local_78;
  uint local_64;
  int local_60;
  uint local_5c;
  uint *local_58;
  uint *local_54;
  int *local_50;
  uint local_4c;
  undefined4 local_48;
  undefined4 local_44;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  code *local_34;
  code *local_30;
  int local_2c;
  
  puVar8 = PTR___stack_chk_guard_000f5568;
  local_100 = param_6;
  pcVar34 = (code *)param_1[9];
  local_60 = 0;
  local_5c = 0;
  local_58 = (uint *)0x0;
  local_2c = *(int *)PTR___stack_chk_guard_000f5568;
  pcVar32 = (code *)*param_1;
  if ((pcVar34 == (code *)0x0) &&
     (unaff_s3 = (code *)(uint)(byte)pcVar32[0x51], unaff_s3 == (code *)0x0)) {
    unaff_s4 = (uint *)FUN_000b6ddc();
    if (unaff_s4 == (uint *)0x0) goto LAB_000b7424;
    if (unaff_s4[0x12] == 0) {
      local_e0 = (code *)0xffff8000;
    }
    else {
      local_e0 = (code *)(*(code *)(PTR_LAB_000f52ec + 0x1608))(*param_1);
    }
    local_e4 = (uint *)(*(code *)(PTR_LAB_000f52ec + 0x20b0))
                                 (param_1,unaff_s4,0x7f,param_3,&local_64);
    local_e8 = (code *)unaff_s4[3];
    if (1 < *param_2) {
      pcVar34 = (code *)*param_3;
    }
    iVar31 = FUN_000a6004(param_1,unaff_s4);
    if (iVar31 != 0) goto LAB_000b7424;
    local_b0 = (code *)(*(code *)(PTR_LAB_000f530c + -0x45b0))(param_1,unaff_s4,local_64);
    if (local_b0 != (code *)0x0) goto LAB_000b7424;
    local_d4 = (code *)param_1[10];
    uVar22 = unaff_s4[9];
    local_c4 = local_d4 + 1;
    uVar12 = unaff_s4[2];
    param_1[10] = (uint)local_c4;
    local_f0 = local_d4;
    if ((uVar22 & 0x80) == 0) {
      local_ec = 0;
      if (uVar12 == 0) {
        local_8c = (code *)0x0;
        goto LAB_000b7504;
      }
    }
    else {
      if (uVar12 == 0) goto LAB_000b82e4;
      bVar1 = *(byte *)(uVar12 + 0x37);
      local_ec = uVar12;
      while (((bVar1 & 0xc0) != 0x80 && (local_ec = *(uint *)(local_ec + 0x14), local_ec != 0))) {
        bVar1 = *(byte *)(local_ec + 0x37);
      }
    }
    pcVar23 = local_c4;
    do {
      puVar17 = (uint *)(uVar12 + 0x14);
      if (uVar12 == local_ec) {
        local_f0 = pcVar23;
      }
      pcVar23 = pcVar23 + 1;
      local_8c = pcVar23 + ~(uint)local_d4;
      uVar12 = *puVar17;
    } while (*puVar17 != 0);
    param_1[10] = (uint)pcVar23;
    goto LAB_000b7504;
  }
  do {
    while( true ) {
      param_1 = unaff_s5;
      (*(code *)(PTR_LAB_000f530c + 0x35c8))(pcVar32,param_2);
      if (param_3 != (uint *)0x0) {
        (*(code *)(PTR_LAB_000f530c + 0x3aa4))(pcVar32,param_3);
      }
      if (param_4 != 0) {
        (*(code *)(PTR_LAB_000f530c + 0x3940))(pcVar32,param_4);
      }
      if (local_2c == *(int *)puVar8) {
        return;
      }
      (*(code *)PTR___stack_chk_fail_000f5540)();
LAB_000b82e4:
      local_ec = 0;
      local_8c = (code *)0x0;
      local_f0 = local_d4;
LAB_000b7504:
      if (local_100 != 0) {
        local_f0 = *(code **)(local_100 + 0x1c);
        local_c4 = *(code **)(local_100 + 0x20);
        param_1[10] = (uint)local_d4;
      }
      puVar19 = PTR_LAB_000f52ec;
      param_2[0xc] = (int)local_f0;
      piVar9 = (int *)(*(code *)(puVar19 + 0x6c00))(pcVar32);
      if (piVar9 != (int *)0x0) break;
LAB_000b7424:
      puVar17 = local_58;
      unaff_s5 = param_1;
      if (local_58 != (uint *)0x0) {
        local_58 = (uint *)0x0;
        puVar17[0x3d] = local_5c;
      }
    }
    pcVar23 = local_8c + 1;
    puVar17 = (uint *)(piVar9 + *(short *)((int)unaff_s4 + 0x2a));
    puVar10 = puVar17 + (int)pcVar23;
    (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);
    *(code *)((int)puVar10 + (int)pcVar23) = (code)0x0;
    sVar3 = *(short *)((int)unaff_s4 + 0x2a);
    if (0 < sVar3) {
      piVar11 = piVar9;
      do {
        *piVar11 = -1;
        piVar11 = piVar11 + 1;
      } while (piVar9 + sVar3 != piVar11);
    }
    local_f8 = (code *)param_1[2];
    local_48 = 0;
    local_4c = local_100;
    local_44 = 0;
    local_40 = 0;
    local_38 = 0;
    local_3c = 0x200;
    local_54 = param_1;
    local_50 = param_2;
    if (local_f8 == (code *)0x0) {
      local_f8 = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x42ac))(param_1);
      puVar20 = unaff_s4;
      if (local_f8 != (code *)0x0) {
        uVar12 = *param_3;
        goto LAB_000b7624;
      }
    }
    else {
      uVar12 = *param_3;
LAB_000b7624:
      puVar7 = PTR_LAB_000f530c;
      puVar6 = PTR_DAT_000f52d4;
      puVar19 = PTR_LAB_000f52cc;
      local_d8 = unaff_s3;
      if ((int)uVar12 < 1) {
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (code *)0xffffffff;
      }
      else {
        puVar20 = param_3 + 1;
        local_84 = 0;
        local_b4 = (code *)0x0;
        local_ac = (code *)0xffffffff;
        pcVar13 = (code *)(PTR_LAB_000f52ec + 0x514);
        pcVar36 = (code *)0x0;
        do {
          unaff_s3 = pcVar36;
          if ((pcVar34 == (code *)0x0) &&
             (iVar31 = (*(code *)(puVar7 + -0x562c))(&local_54,*puVar20), iVar31 != 0))
          goto LAB_000b7aa8;
          iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
          pbVar29 = (byte *)puVar20[1];
          if (0 < iVar31) {
            puVar30 = (undefined4 *)unaff_s4[1];
            iVar35 = 0;
            do {
              pbVar27 = (byte *)*puVar30;
              uVar22 = (uint)*pbVar29;
              uVar12 = (uint)*pbVar27;
              pbVar24 = pbVar27;
              pbVar26 = pbVar29;
              if (uVar12 == uVar22) goto LAB_000b76e8;
              while (puVar6[uVar12 + 0x25ac] == puVar6[uVar22 + 0x25ac]) {
                while( true ) {
                  pbVar24 = pbVar24 + 1;
                  uVar22 = (uint)pbVar26[1];
                  uVar12 = (uint)*pbVar24;
                  pbVar26 = pbVar26 + 1;
                  if (uVar12 != uVar22) break;
LAB_000b76e8:
                  if (uVar12 == 0) {
                    if (*(short *)(unaff_s4 + 10) == iVar35) {
                      local_b4 = (code *)*puVar20;
                      local_d8 = (code *)0x1;
                      local_ac = unaff_s3;
                    }
                    else {
                      if ((local_ec != 0) && ((*(ushort *)(puVar30 + 4) & 1) != 0)) {
                        piVar9[iVar35] = (int)unaff_s3;
                        if (iVar31 <= iVar35) goto LAB_000b7e5c;
                        uVar12 = *unaff_s4;
                        local_84 = 1;
                        goto LAB_000b7790;
                      }
                      if ((*(ushort *)(puVar30 + 4) & 0x60) != 0) {
                        (*(code *)(PTR_LAB_000f530c + -0x61d8))
                                  (param_1,PTR_DAT_000f52d4 + -0x6824,pbVar27);
                        goto LAB_000b7aa8;
                      }
                    }
                    piVar9[iVar35] = (int)unaff_s3;
                    if (iVar31 <= iVar35) goto LAB_000b7748;
                    uVar12 = *unaff_s4;
                    goto LAB_000b7790;
                  }
                }
              }
              iVar35 = iVar35 + 1;
              puVar30 = puVar30 + 5;
            } while (iVar35 != iVar31);
          }
LAB_000b7748:
          if ((local_ec != 0) || (iVar31 = (*pcVar13)(pbVar29), iVar31 == 0)) {
LAB_000b7e5c:
            (*(code *)(PTR_LAB_000f530c + -0x61d8))(param_1,PTR_DAT_000f52d4 + -0x6800,pbVar29);
            *(undefined1 *)((int)param_1 + 0x11) = 1;
            goto LAB_000b7aa8;
          }
          local_b4 = (code *)*puVar20;
          iVar35 = -1;
          uVar12 = *unaff_s4;
          local_d8 = (code *)0x1;
          pbVar27 = puVar19 + 0x7028;
          local_ac = unaff_s3;
LAB_000b7790:
          iVar31 = (*(code *)(PTR_LAB_000f530c + -0x5ce4))
                             (param_1,0x17,uVar12,pbVar27,
                              *(undefined4 *)(*(int *)(pcVar32 + 0x10) + (int)local_e0 * 0x10));
          if (iVar31 == 1) goto LAB_000b7aa8;
          if (iVar31 == 2) {
            piVar9[iVar35] = -1;
          }
          puVar20 = puVar20 + 4;
          pcVar36 = unaff_s3 + 1;
        } while ((int)(unaff_s3 + 1) < (int)*param_3);
      }
      uVar12 = (uint)(local_d8 + local_84) & 0xff;
      if ((unaff_s4[9] & 0x60) != 0) {
        iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);
        do {
          if (iVar31 < 1) break;
          bVar5 = false;
          iVar35 = 0;
          piVar11 = piVar9;
          do {
            if ((*piVar11 < 0) &&
               (iVar14 = unaff_s4[1] + iVar35 * 0x14, (*(ushort *)(iVar14 + 0x10) & 0x60) != 0)) {
              iVar14 = (*pcVar36)(*(undefined4 *)(iVar14 + 4),piVar9,local_d8);
              iVar31 = (int)*(short *)((int)unaff_s4 + 0x2a);
              if (iVar14 != 0) {
                bVar5 = true;
                *piVar11 = 99999;
              }
            }
            iVar35 = iVar35 + 1;
            piVar11 = piVar11 + 1;
          } while (iVar35 < iVar31);
        } while (bVar5);
      }
      uVar22 = unaff_s4[0xe];
      uVar25 = *param_1;
      pcVar36 = (code *)(PTR_LAB_000f52ec + 0x1208);
      param_2[0x10] = -(uint)(uVar22 != 0);
      param_2[0x11] = -(uint)(uVar22 != 0);
      iVar31 = (*pcVar36)(uVar25,unaff_s4,piVar9,uVar12);
      if (param_5 == 5) {
        local_60 = 1;
      }
      uVar22 = unaff_s4[2];
      local_78 = puVar17;
      if (uVar22 != 0) {
        pcVar36 = (code *)(PTR_LAB_000f52ec + -0x71c);
        iVar35 = 0;
        puVar20 = puVar17;
        do {
          if ((((uVar12 == 0) && (iVar31 < 2)) && (uVar22 != local_ec)) &&
             ((*(int *)(uVar22 + 0x24) == 0 ||
              (iVar14 = (*pcVar36)(*(int *)(uVar22 + 0x24),piVar9,local_d8), iVar14 == 0)))) {
            iVar14 = 0;
            if (*(short *)(uVar22 + 0x32) != 0) {
              do {
                iVar15 = (int)*(short *)(*(int *)(uVar22 + 4) + iVar14 * 2);
                if (iVar15 < 0) {
                  uVar25 = (*pcVar36)(*(undefined4 *)(*(int *)(uVar22 + 0x28) + iVar14 * 0x10 + 4),
                                      piVar9,local_d8);
                }
                else {
                  uVar25 = (uint)~piVar9[iVar15] >> 0x1f;
                }
                iVar14 = iVar14 + 1;
                if (uVar25 != 0) {
                  uVar25 = param_1[0xb] + 1;
                  param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;
                  if ((param_5 == 0xb) && (*(char *)(uVar22 + 0x36) == '\x05')) {
                    local_60 = 1;
                  }
                  goto LAB_000b79b4;
                }
              } while (iVar14 < (int)(uint)*(ushort *)(uVar22 + 0x32));
            }
LAB_000b79c4:
            uVar25 = 0;
            *(undefined1 *)((int)puVar10 + iVar35 + 1) = 0;
          }
          else {
            uVar25 = param_1[0xb] + 1;
            param_1[0xb] = *(ushort *)(uVar22 + 0x34) + uVar25;
LAB_000b79b4:
            if (uVar25 == 0) goto LAB_000b79c4;
          }
          uVar22 = *(uint *)(uVar22 + 0x14);
          iVar35 = iVar35 + 1;
          *puVar20 = uVar25;
          puVar20 = puVar20 + 1;
        } while (uVar22 != 0);
        local_78 = puVar17 + iVar35;
      }
      uVar22 = param_1[0xb];
      param_1[0xb] = uVar22 + 1;
      *local_78 = uVar22 + 1;
      if (local_60 != 0) {
        (*(code *)PTR_memset_000f5450)(puVar10,1,pcVar23);
      }
      if (*(char *)((int)param_1 + 0x12) == '\0') {
        *(ushort *)(local_f8 + 0x96) = *(ushort *)(local_f8 + 0x96) & 0xf7ff | 0x800;
      }
      (*(code *)(PTR_LAB_000f5308 + -0x5698))
                (param_1,local_e4 != (uint *)0x0 || iVar31 != 0,local_e0);
      uVar22 = unaff_s4[0xe];
      if (uVar22 == 0) {
        uVar25 = param_1[0xb];
        local_80 = *local_78;
        local_e0 = (code *)(uVar25 + 1);
        sVar3 = *(short *)((int)unaff_s4 + 0x2a);
        param_1[0xb] = (uint)local_e0;
        local_c8 = local_e0;
        if (local_84 == 0) {
          if ((local_e4 == (uint *)0x0) && (iVar31 == 0)) {
            local_94 = 0;
            pcVar23 = local_e0;
            if (local_d8 == (code *)0x0) goto LAB_000b7c48;
          }
          else {
            local_94 = uVar25 + 2;
            param_1[0xb] = (uint)(local_e0 + sVar3);
            pcVar23 = local_e0 + sVar3;
          }
LAB_000b7c3c:
          local_c8 = pcVar23 + 1;
          param_1[0xb] = (uint)local_c8;
          pcVar23 = local_c8;
        }
        else {
          local_94 = uVar25 + 2;
          pcVar23 = local_e0 + sVar3;
          param_1[0xb] = (uint)pcVar23;
          if (((uVar12 != 0) || (local_e4 != (uint *)0x0)) || (iVar31 != 0)) goto LAB_000b7c3c;
        }
LAB_000b7c48:
        local_90 = pcVar23 + 1;
        param_1[0xb] = (uint)(pcVar23 + sVar3);
      }
      else {
        local_80 = 0;
        local_94 = 0;
        local_90 = (code *)0x0;
        local_c8 = (code *)0x0;
        local_e0 = (code *)0x0;
      }
      unaff_s3 = local_d8;
      if (local_e8 == (code *)0x0) {
        if (pcVar34 == (code *)0x0) goto LAB_000b7cac;
      }
      else {
        local_5c = param_1[0x3d];
        param_1[0x3d] = *unaff_s4;
        local_58 = param_1;
        if (pcVar34 == (code *)0x0) {
          FUN_000a5e24(param_1,unaff_s4,unaff_s4[0x12],param_4,local_f0);
LAB_000b7cac:
          iVar35 = (*(code *)(PTR_LAB_000f530c + -0x562c))(&local_54,param_4);
          puVar20 = unaff_s4;
          if (iVar35 != 0) goto LAB_000b7aa8;
          uVar22 = unaff_s4[0xe];
        }
      }
      if (uVar22 == 0) {
        uVar22 = *(uint *)(pcVar32 + 0x20);
        local_b0 = (code *)(param_1[0xe] - 1);
        param_1[0xe] = (uint)local_b0;
        if (((((uVar22 & 1) == 0) || (param_1[0x1e] != 0)) ||
            (*(char *)((int)param_1 + 0x12) != '\0')) || (local_100 != 0)) {
          local_a8 = 0;
        }
        else {
          local_a8 = param_1[0xb] + 1;
          pcVar23 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          param_1[0xb] = local_a8;
          (*pcVar23)(local_f8,0x45,0,local_a8,0);
        }
        if ((pcVar34 == (code *)0x0) && ((unaff_s4[9] & 0x80) == 0)) {
          local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          (*local_f4)(local_f8,0x48,0,local_80,local_e0);
          local_98 = (code *)0x0;
          local_dc = (code *)0x0;
          if (local_100 != 0) {
            local_d0 = 0;
LAB_000b7d5c:
            (*(code *)(PTR_LAB_000f5308 + 0x5054))(param_1,param_4,local_b0,0x10);
            uVar22 = unaff_s4[9];
            local_cc = (code *)0x0;
            local_9c = (code *)0x0;
            local_88 = 0;
            cVar2 = '\x01';
            local_7c = 0;
LAB_000b7d98:
            if ((uVar22 & 0x80) == 0) {
              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7f,local_f0,local_e0,0);
              local_a4 = 0;
              local_9c = local_dc;
              local_dc = local_98;
            }
            else {
LAB_000b7da8:
              local_a4 = local_d0;
              if (0 < local_d0) {
LAB_000b7db0:
                pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
                iVar35 = 0;
                pcVar23 = local_dc;
                do {
                  psVar28 = (short *)(*(int *)(local_ec + 4) + iVar35);
                  iVar35 = iVar35 + 2;
                  (*pcVar36)(local_f8,unaff_s4,local_f0,(int)*psVar28,pcVar23);
                  pcVar23 = pcVar23 + 1;
                  local_a4 = local_d0;
                } while (local_d0 << 1 != iVar35);
              }
              local_d0 = local_a4;
              if (cVar2 == '\0') {
                local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
LAB_000b9410:
                uVar18 = (*(code *)(PTR_LAB_000f52ec + 0x6954))(pcVar32,local_ec);
                uVar21 = (*local_f4)(local_f8,0x5b,local_dc,local_d0,local_98);
                (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(local_f8,uVar21,uVar18,local_d0);
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x82,local_cc,local_98,local_dc,local_d0);
                local_9c = local_dc;
                local_a4 = 0;
                cVar2 = '\0';
                local_dc = local_98;
              }
              else if (local_9c == (code *)0x0) {
                local_9c = local_dc;
              }
              else {
                (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)local_f8,local_f8 + 0x68,local_9c);
                local_9c = local_dc;
              }
            }
            goto LAB_000b8330;
          }
          local_9c = (code *)0x0;
          local_cc = (code *)0x0;
          local_d0 = 0;
LAB_000b9260:
          uVar18 = 0x1004;
          if (*(char *)((int)param_1 + 0x12) == '\0') {
            if (local_e4 == (uint *)0x0) {
              uVar18 = 0x1004;
              if (iVar31 == 0) {
                if (uVar12 != 0) goto LAB_000b9278;
                uVar18 = 0x100c;
                if (local_60 != 0) {
                  uVar18 = 0x1004;
                }
              }
            }
            else {
LAB_000b9278:
              uVar18 = 0x1004;
            }
          }
          local_7c = FUN_0009e360(param_1,param_2,param_4,0,0,uVar18,local_c4);
          puVar20 = unaff_s4;
          if (local_7c == 0) goto LAB_000b7aa8;
          local_34 = *(code **)(local_7c + 0x14);
          local_30 = *(code **)(local_7c + 0x18);
          cVar2 = *(char *)(local_7c + 0x2e);
          local_88 = *(uint *)(local_7c + 0x30) >> 0x1f;
          if (cVar2 == '\x01') {
            uVar22 = unaff_s4[9];
            goto LAB_000b7d98;
          }
          puVar20 = (uint *)param_1[0x1d];
          if ((uint *)param_1[0x1d] == (uint *)0x0) {
            puVar20 = param_1;
          }
          *(undefined1 *)(puVar20 + 5) = 1;
          uVar22 = unaff_s4[9];
          if (cVar2 == '\x02') {
            if ((((int)local_30 < 0) || (local_f0 == local_30)) ||
               (*(char *)((int)puVar10 + ((int)local_30 - (int)local_d4)) == '\0'))
            goto LAB_000b7d98;
            if ((uVar22 & 0x80) == 0) {
              (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
              goto LAB_000b937c;
            }
            if (0 < local_d0) {
              cVar2 = '\0';
              goto LAB_000b7db0;
            }
            goto LAB_000b9410;
          }
          if ((uVar22 & 0x80) != 0) goto LAB_000b7da8;
          (*local_f4)(local_f8,0x7f,local_f0,local_e0,0);
          if (cVar2 == '\0') {
LAB_000b937c:
            uVar22 = param_1[0xb];
            param_1[0xb] = uVar22 + 1;
            *local_78 = uVar22 + 1;
            (*local_f4)(local_f8,0x93,local_80,local_e0,0);
            cVar2 = '\0';
          }
          local_9c = local_dc;
          local_a4 = 0;
          local_dc = local_98;
LAB_000b8ff0:
          if (cVar2 == '\x02') {
            if (local_e8 == (code *)0x0) {
LAB_000b9784:
              if (-1 < (int)local_34) {
                *(undefined1 *)((int)puVar10 + ((int)local_34 - (int)local_d4)) = 0;
              }
              if (-1 < (int)local_30) {
                *(undefined1 *)((int)puVar10 + ((int)local_30 - (int)local_d4)) = 0;
              }
              if ((cVar2 == '\x02') && (0 < (int)(local_8c + ((int)~(uint)local_30 >> 0x1f)))) {
                iVar35 = (*local_f4)(local_f8,0x11,0,0,0);
                if (unaff_s4[0xe] == 0) goto LAB_000b908c;
                goto LAB_000b90c8;
              }
              if (unaff_s4[0xe] == 0) goto LAB_000b9084;
LAB_000b97d4:
              if ((local_34 != local_f0) && (local_30 != local_f0)) {
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_b0,local_dc,local_a4);
              }
LAB_000b902c:
              local_d4 = local_b0;
              if (cVar2 != '\x01') goto LAB_000b9038;
            }
            else {
LAB_000b9038:
              uVar22 = param_1[0xe];
              param_1[0xe] = uVar22 - 1;
              local_d4 = (code *)(uVar22 - 1);
            }
            pcVar23 = local_dc;
            if (local_ec == 0) {
              pcVar23 = local_e0;
            }
            (*local_f4)(local_f8,0x32,pcVar23,local_b0,0);
            pcVar23 = local_d4;
            goto LAB_000b8340;
          }
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
LAB_000b9014:
          if (local_e8 == (code *)0x0) {
            if (cVar2 != '\0') goto LAB_000b9784;
            if (unaff_s4[0xe] != 0) goto LAB_000b911c;
LAB_000b9084:
            iVar35 = 0;
LAB_000b908c:
            (*(code *)(PTR_000f5314 + 0x7a78))(param_1,unaff_s4,0x61,0,local_d4,puVar10,0,0);
LAB_000b90c8:
            if (iVar35 != 0) {
              iVar14 = *(int *)(local_f8 + 0x6c) + -1;
              if (iVar14 == iVar35) {
                *(int *)(local_f8 + 0x6c) = iVar35;
              }
              else {
                if (-1 < iVar35) {
                  iVar14 = iVar35;
                }
                if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {
                  puVar19 = (undefined *)(iVar14 * 0x14 + *(int *)(local_f8 + 0x68));
                }
                else {
                  puVar19 = PTR_DAT_000f52bc + 0x5860;
                }
                *(int *)(puVar19 + 8) = *(int *)(local_f8 + 0x6c);
              }
            }
            if (cVar2 != '\0') goto LAB_000b97d4;
          }
          else if (cVar2 != '\0') goto LAB_000b902c;
LAB_000b911c:
          if (local_ec == 0) {
            if (pcVar34 != (code *)0x0) {
              local_d4 = (code *)(param_1[0xe] - 1);
              param_1[0xe] = (uint)local_d4;
              (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
              local_a0 = *(int *)(local_f8 + 0x6c);
              if (local_e8 == (code *)0x0) {
                (*local_f4)(local_f8,0x7f,local_cc,local_e0,0);
                (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              goto LAB_000b916c;
            }
            local_d4 = (code *)(*local_f4)(local_f8,0x2a,local_80,local_b0,local_e0);
            (*local_f4)(local_f8,0x20,local_f0,local_d4,local_e0);
            local_a0 = 0;
LAB_000b9a58:
            if (local_d8 == (code *)0x0) goto LAB_000b839c;
LAB_000b8358:
            if (param_1[2] != 0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1,local_b4,local_c8);
            }
            goto LAB_000b837c;
          }
          local_d4 = (code *)(param_1[0xe] - 1);
          param_1[0xe] = (uint)local_d4;
          (*local_f4)(local_f8,0x25,local_cc,local_b0,0);
          local_a0 = *(int *)(local_f8 + 0x6c);
          if (pcVar34 == (code *)0x0) {
            (*local_f4)(local_f8,0x7e,local_cc,local_dc,0);
            (*(code *)(PTR_LAB_000f52e8 + -0x4660))(local_f8,0x1d,local_f0,local_d4,local_dc,0);
            goto LAB_000b9a58;
          }
          iVar35 = 0;
          if (local_e8 == (code *)0x0) {
            for (; iVar35 < local_d0; iVar35 = iVar35 + 1) {
              (*local_f4)(local_f8,0x59,local_cc,iVar35,local_9c + iVar35);
            }
            (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                      (local_f8,0x1d,local_f0,local_d4,local_9c,local_d0);
          }
LAB_000b916c:
          if (local_d8 != (code *)0x0) goto LAB_000b9174;
        }
        else {
          if (local_ec == 0) {
            local_d0 = 0;
          }
          else {
            local_d0 = (int)*(short *)(local_ec + 0x32);
          }
          local_a4 = local_d0;
          local_dc = (code *)(param_1[0xb] + 1);
          local_98 = pcVar34 + param_1[0xb] + local_d0 + 1;
          param_1[0xb] = (uint)local_98;
          if (local_100 == 0) {
            iVar35 = 0;
            if (local_e8 != (code *)0x0) {
              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
            }
            local_cc = (code *)param_1[10];
            pcVar23 = pcVar34 + iVar35 + local_d0;
            param_1[10] = (uint)(local_cc + 1);
            puVar19 = PTR_LAB_000f52e8;
            if (local_ec == 0) {
              local_9c = (code *)(*(code *)(PTR_LAB_000f52e8 + -0x47a8))
                                           (local_f8,100,local_cc,pcVar23,0);
            }
            else {
              pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
              (*pcVar36)(local_f8,0x48,0,local_dc,local_dc + local_d0 + -1);
              local_9c = (code *)(*pcVar36)(local_f8,100,local_cc,pcVar23,0);
              iVar35 = (*(code *)(PTR_FUN_000f5300 + -0x1400))(param_1,local_ec);
              if (iVar35 != 0) {
                pcVar36 = (code *)(PTR_LAB_000f52ec + 0x280c);
                *(short *)(iVar35 + 8) = (short)pcVar23;
                (*pcVar36)(local_f8,iVar35,0xfffffff7);
              }
            }
            local_f4 = (code *)(puVar19 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b9260;
            if (local_e8 != (code *)0x0) {
              local_f0 = local_cc;
            }
            (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))
                      (param_1,local_cc,local_ec,param_3,param_2,param_4);
          }
          else {
            if (pcVar34 == (code *)0x0) goto LAB_000b7d5c;
            local_cc = (code *)0x0;
          }
          cVar2 = '\0';
          puVar20 = (uint *)param_1[0x1d];
          if ((uint *)param_1[0x1d] == (uint *)0x0) {
            puVar20 = param_1;
          }
          local_7c = 0;
          local_88 = 1;
          *(undefined1 *)(puVar20 + 5) = 1;
          local_9c = local_dc;
LAB_000b8330:
          pcVar23 = local_b0;
          if (local_100 == 0) {
            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b8ff0;
            goto LAB_000b9014;
          }
LAB_000b8340:
          local_d4 = pcVar23;
          local_a0 = 0;
          if (local_d8 != (code *)0x0) {
            local_f4 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
            if (pcVar34 == (code *)0x0) goto LAB_000b8358;
LAB_000b9174:
            (*local_f4)(local_f8,0x59,local_cc,local_ac,local_c8);
LAB_000b837c:
            (*local_f4)(local_f8,0xf,local_c8,0,0);
          }
        }
LAB_000b839c:
        if (local_84 == 0) {
          if (iVar31 != 0) goto LAB_000b8840;
          if (local_e4 != (uint *)0x0) goto LAB_000b8838;
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
        }
        else {
          uVar22 = 0;
          if (iVar31 != 0) {
LAB_000b8840:
            if ((*(uint *)(*param_1 + 0x24) & 0x4000) == 0) {
LAB_000b8838:
              uVar22 = 0;
            }
            else {
              uVar22 = (*(code *)(PTR_000f5314 + 0x7450))(param_1,unaff_s4);
            }
          }
          local_b4 = (code *)(PTR_LAB_000f5324 + -0x2fdc);
          uVar25 = FUN_000bd024(param_1,local_e4,param_3,0,3,unaff_s4,param_5);
          puVar19 = PTR_LAB_000f52e8;
          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {
            local_f4 = (code *)0x0;
            uVar33 = 0;
            pcVar23 = (code *)(PTR_LAB_000f52ec + 0xf74);
            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
            do {
              iVar35 = (int)(short)uVar33;
              if ((unaff_s4[9] & 0x20) != 0) {
                iVar35 = (*pcVar23)(unaff_s4,iVar35);
              }
              if (((uVar25 | uVar22) == 0xffffffff) ||
                 ((((int)uVar33 < 0x20 && ((1 << (uVar33 & 0x1f) & (uVar25 | uVar22)) != 0)) ||
                  ((*(ushort *)(unaff_s4[1] + (int)local_f4 + 0x10) & 1) != 0)))) {
                (*pcVar36)(local_f8,unaff_s4,local_f0,uVar33,iVar35 + local_94);
              }
              else {
                (*(code *)(puVar19 + -0x47a8))(local_f8,0x48,0,iVar35 + local_94,0);
              }
              uVar33 = uVar33 + 1;
              local_f4 = (code *)((int)local_f4 + 0x14);
            } while ((int)uVar33 < (int)*(short *)((int)unaff_s4 + 0x2a));
          }
          if ((local_d8 == (code *)0x0) && (local_ec == 0)) {
            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x4d,local_e0,local_c8,0);
          }
        }
        uVar22 = (*local_b4)(param_1,local_e4,param_3,1,1,unaff_s4,param_5);
        puVar19 = PTR_LAB_000f5308;
        iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
        if (0 < iVar35) {
          uVar25 = 0;
          pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
          pcVar13 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
          pcVar23 = local_90;
          do {
            if (uVar25 == (int)*(short *)(unaff_s4 + 10)) {
LAB_000b8640:
              (*pcVar13)(local_f8,0x48,0,pcVar23,0);
              iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
            }
            else {
              uVar4 = *(ushort *)(unaff_s4[1] + uVar25 * 0x14 + 0x10);
              if ((uVar4 & 0x60) == 0) {
                iVar14 = piVar9[uVar25];
                if (iVar14 < 0) {
                  if ((((local_64 & 1) != 0) && ((int)uVar25 < 0x20)) &&
                     ((uVar22 >> (uVar25 & 0x1f) & 1) == 0)) goto LAB_000b8640;
                  (*pcVar36)(local_f8,unaff_s4,local_f0,uVar25,pcVar23);
                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                  local_88 = 0;
                }
                else if (pcVar34 == (code *)0x0) {
                  if (param_1[2] != 0) {
                    (*(code *)(puVar19 + 0x7228))(param_1,param_3[iVar14 * 4 + 1],pcVar23);
                    iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                  }
                }
                else {
                  iVar15 = local_d0;
                  if (local_e8 != (code *)0x0) {
                    iVar15 = iVar35;
                  }
                  (*pcVar13)(local_f8,0x59,local_cc,iVar14 + iVar15,pcVar23);
                  iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                }
              }
              else if ((uVar4 & 0x20) != 0) {
                pcVar23 = pcVar23 + -1;
              }
            }
            uVar25 = uVar25 + 1;
            pcVar23 = pcVar23 + 1;
          } while ((int)uVar25 < iVar35);
        }
        if ((unaff_s4[9] & 0x60) != 0) {
          (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);
        }
        if ((local_64 & 1) == 0) {
          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);
          if (local_e8 == (code *)0x0) {
LAB_000b8da4:
            (*(code *)(PTR_LAB_000f52c8 + -0x2f14))
                      (param_1,unaff_s4,puVar17,local_f0,local_c4,local_c8,local_e0,uVar12,
                       param_5 & 0xff,local_d4,&local_60,piVar9,0);
            if ((local_60 != 0) || (uVar12 != 0)) {
              if (local_ec == 0) {
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
              }
              else {
                (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                          (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
              }
            }
            if (iVar31 == 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);
              if (local_88 != 0) {
LAB_000b8f88:
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x87,local_f0,0,0);
                goto LAB_000b8fac;
              }
              if (uVar12 != 0) goto LAB_000b8ea8;
            }
            else {
              (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,local_e0,0,piVar9,uVar12);
              (*(code *)(PTR_LAB_000f52c8 + -0x46bc))
                        (param_1,unaff_s4,local_f0,local_c4,puVar17,0xffffffff);
              if (local_88 != 0) goto LAB_000b8f88;
LAB_000b8fac:
              if ((1 < iVar31) || (uVar12 != 0)) {
LAB_000b8ea8:
                (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x7a,local_f0,0,0);
              }
              if (iVar31 != 0) {
                (*(code *)(PTR_LAB_000f52c8 + -0x3a44))(param_1,unaff_s4,0,local_c8,piVar9,uVar12);
                if (cVar2 == '\x02') {
                  uVar18 = 6;
                }
                else {
                  uVar18 = 4;
                }
                (*(code *)(PTR_000f5314 + 0x645c))
                          (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);
                if ((*(uint *)(*param_1 + 0x24) & 0x4000) != 0) {
                  (*(code *)(PTR_LAB_000f52c8 + -0x15ac))
                            (param_1,unaff_s4,param_3,local_e0,piVar9,uVar12);
                }
                goto LAB_000b8698;
              }
            }
            if (cVar2 == '\x02') {
              uVar18 = 6;
            }
            else {
              uVar18 = 4;
            }
            (*(code *)(PTR_000f5314 + 0x645c))
                      (param_1,unaff_s4,local_f0,local_c4,local_c8,puVar17,uVar18,0,0);
          }
        }
        else {
          (*(code *)(PTR_LAB_000f52e8 + -0x336c))(local_f8,unaff_s4,local_90);
          unaff_s3 = (code *)(PTR_LAB_000f5324 + -0x2d3c);
          FUN_000bd2c4(param_1,local_e4,0x7f,param_3,1,unaff_s4,local_e0,param_5,local_d4);
          if (local_e8 == (code *)0x0) {
            if (local_ec == 0) {
              (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x20,local_f0,local_d4,local_e0);
            }
            else {
              (*(code *)(PTR_LAB_000f52e8 + -0x4660))
                        (local_f8,0x1d,local_f0,local_d4,local_dc,local_a4);
            }
            iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);
            pcVar36 = (code *)(PTR_LAB_000f5308 + 0x7574);
            pcVar23 = local_90;
            iVar35 = 0;
            while (iVar35 < iVar14) {
              uVar4 = *(ushort *)(iVar35 * 0x14 + unaff_s4[1] + 0x10);
              if ((uVar4 & 0x60) == 0) {
                if ((-1 < piVar9[iVar35]) || (iVar35 == *(short *)(unaff_s4 + 10)))
                goto LAB_000b95b4;
                (*pcVar36)(local_f8,unaff_s4,local_f0,iVar35,pcVar23);
                iVar14 = (int)*(short *)((int)unaff_s4 + 0x2a);
                pcVar23 = pcVar23 + 1;
                iVar35 = iVar35 + 1;
                local_e8 = pcVar36;
              }
              else {
                if ((uVar4 & 0x20) != 0) {
                  pcVar23 = pcVar23 + -1;
                }
LAB_000b95b4:
                pcVar23 = pcVar23 + 1;
                iVar35 = iVar35 + 1;
              }
            }
            if ((unaff_s4[9] & 0x60) != 0) {
              (*(code *)(PTR_LAB_000f52c8 + -0x7554))(param_1,local_90,unaff_s4);
            }
            goto LAB_000b8da4;
          }
        }
LAB_000b8698:
        if (local_a8 != 0) {
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x52,local_a8,1,0);
        }
        (*unaff_s3)(param_1,local_e4,0x7f,param_3,2,unaff_s4,local_e0,param_5,local_d4);
        if (cVar2 == '\x01') {
LAB_000b881c:
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
        }
        else if (cVar2 == '\x02') {
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
          (*pcVar34)(local_f8,local_d4);
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(local_7c);
        }
        else {
          if ((local_ec == 0) && (pcVar34 == (code *)0x0)) {
            (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0xb,0,local_d4,0);
            goto LAB_000b881c;
          }
          pcVar34 = (code *)(PTR_LAB_000f52e8 + -0x4a64);
          (*pcVar34)(local_f8,local_d4);
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,5,local_cc,local_a0,0);
          unaff_s3 = local_f8;
        }
        (*pcVar34)(local_f8,local_b0);
        if ((((*(char *)((int)param_1 + 0x12) == '\0') && (param_1[0x1e] == 0)) && (local_100 == 0))
           && (param_1[0x1c] != 0)) {
          (*(code *)(PTR_000f5314 + 0x78e0))(param_1);
        }
        puVar20 = unaff_s4;
        if (local_a8 != 0) {
          (*(code *)(PTR_LAB_000f52e8 + -0x47a8))(local_f8,0x50,local_a8,1,0);
          (*(code *)(PTR_LAB_000f52ec + 0x7e44))(local_f8,1);
          pcVar34 = local_f8;
          if (*(char *)(*(int *)local_f8 + 0x51) == '\0') {
            (*(code *)(PTR_FUN_000f5300 + -0x1e28))(local_f8,0,0,PTR_DAT_000f52d4 + -0x67ec,0);
          }
        }
      }
      else {
        local_e4 = (uint *)unaff_s4[0x10];
        pcVar34 = (code *)param_1[2];
        uVar12 = *param_1;
        if (local_e4 != (uint *)0x0) {
          uVar22 = *local_e4;
          while ((uVar22 != uVar12 && (local_e4 = (uint *)local_e4[6], local_e4 != (uint *)0x0))) {
            uVar22 = *local_e4;
          }
        }
        local_100 = param_1[10];
        iVar14 = *(short *)((int)unaff_s4 + 0x2a) + 2;
        iVar31 = param_2[0xc];
        pcVar36 = (code *)(PTR_LAB_000f52e8 + -0x47a8);
        param_1[10] = local_100 + 1;
        local_f0 = (code *)(*pcVar36)(pcVar34,100,local_100,iVar14,0);
        local_e0 = (code *)param_1[0xb];
        iVar35 = *param_2;
        pcVar23 = local_e0 + iVar14;
        local_e8 = local_e0 + 1;
        param_1[0xb] = (uint)pcVar23;
        if (iVar35 < 2) {
          pcVar13 = pcVar23 + 2;
          param_1[0xb] = (uint)pcVar13;
          unaff_s3 = (code *)FUN_0009e360(param_1,param_2,param_4,0,0,4,0);
          puVar20 = unaff_s4;
          if (unaff_s3 == (code *)0x0) goto LAB_000b7aa8;
          iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
          local_d4 = local_e0 + 3;
          iVar15 = 0;
          pcVar16 = (code *)(PTR_LAB_000f5308 + 0x7228);
          piVar11 = piVar9;
          while (iVar15 < iVar35) {
            if (*piVar11 < 0) {
              (*pcVar36)(pcVar34,0xa6,iVar31,iVar15,local_d4 + iVar15);
              if (*(int *)(pcVar34 + 0x6c) < 1) {
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                iVar15 = iVar15 + 1;
                piVar11 = piVar11 + 1;
              }
              else {
                iVar15 = iVar15 + 1;
                piVar11 = piVar11 + 1;
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
                *(undefined2 *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12)
                     = 1;
              }
            }
            else {
              if (param_1[2] != 0) {
                (*pcVar16)(param_1,param_3[*piVar11 * 4 + 1]);
                iVar35 = (int)*(short *)((int)unaff_s4 + 0x2a);
              }
              iVar15 = iVar15 + 1;
              piVar11 = piVar11 + 1;
            }
          }
          if ((unaff_s4[9] & 0x80) == 0) {
            (*pcVar36)(pcVar34,0x7f,iVar31,local_e8,0);
            if (local_b4 == (code *)0x0) {
              (*pcVar36)(pcVar34,0x7f,iVar31,local_e0 + 2,0);
            }
            else if (param_1[2] != 0) {
              (*(code *)(PTR_LAB_000f5308 + 0x7228))(param_1);
            }
          }
          else {
            uVar12 = unaff_s4[2];
            while( true ) {
              if (uVar12 == 0) {
                    /* WARNING: Does not return */
                pcVar34 = (code *)trap(0);
                (*pcVar34)();
              }
              if ((*(byte *)(uVar12 + 0x37) & 0xc0) == 0x80) break;
              uVar12 = *(uint *)(uVar12 + 0x14);
            }
            local_d4 = (code *)(int)**(short **)(uVar12 + 4);
            (*pcVar36)(pcVar34,0xa6,iVar31,local_d4,local_e8);
            (*pcVar36)(pcVar34,0x4e,local_e0 + 3 + (int)local_d4,local_e0 + 2,0);
          }
          local_34 = *(code **)(unaff_s3 + 0x14);
          local_30 = *(code **)(unaff_s3 + 0x18);
          pcVar16 = (code *)(uint)(byte)unaff_s3[0x2e];
          if (pcVar16 == (code *)0x0) {
            puVar17 = (uint *)param_1[0x1d];
            if ((uint *)param_1[0x1d] == (uint *)0x0) {
              puVar17 = param_1;
            }
            *(undefined1 *)(puVar17 + 5) = 1;
            (*pcVar36)(pcVar34,0x5b,local_e8,iVar14,pcVar23 + 1);
            (*pcVar36)(pcVar34,0x78,local_100,pcVar13,0);
            (*pcVar36)(pcVar34,0x79,local_100,pcVar23 + 1,pcVar13);
            goto LAB_000b80d0;
          }
          (*(code *)(PTR_LAB_000f52ec + 0x29e8))(*(int *)pcVar34,pcVar34 + 0x68,local_f0,iVar14);
          (*pcVar36)(pcVar34,0x74,iVar31,0,0);
          local_e0 = pcVar16;
          local_b0 = pcVar16;
        }
        else {
          if (local_b4 == (code *)0x0) {
            uVar18 = (*(code *)(PTR_FUN_000f5300 + -0x5d30))(param_1,0x4b,0,0);
          }
          else {
            uVar18 = (*(code *)(PTR_LAB_000f52fc + -0x7698))(uVar12);
          }
          local_e0 = (code *)(PTR_LAB_000f530c + 0x59e4);
          iVar31 = (*local_e0)(*param_1,0,uVar18);
          if (0 < *(short *)((int)unaff_s4 + 0x2a)) {
            local_f0 = (code *)0x1;
            pcVar23 = (code *)(PTR_FUN_000f5300 + -0x5d30);
            pcVar13 = (code *)(PTR_LAB_000f52fc + -0x7698);
            local_f8 = (code *)piVar9;
            do {
              if (*(int *)local_f8 < 0) {
                uVar22 = (*pcVar23)(param_1,0x4b,0,0);
                if (uVar22 != 0) {
                  *(short *)(uVar22 + 0x20) = (short)local_f0;
                }
              }
              else {
                uVar22 = param_3[*(int *)local_f8 * 4 + 1];
                if (uVar22 != 0) {
                  uVar22 = (*pcVar13)(uVar12,uVar22,0,0);
                }
              }
              iVar31 = (*local_e0)(*param_1,iVar31,uVar22);
              local_f8 = (code *)((int)local_f8 + 4);
              bVar5 = (int)local_f0 < (int)*(short *)((int)unaff_s4 + 0x2a);
              local_f0 = (code *)((int)local_f0 + 1);
              local_d4 = pcVar32;
            } while (bVar5);
          }
          (*(code *)(PTR_LAB_000f52c8 + -0x3ed4))(param_1,local_100,0,iVar31,param_2,param_4);
          if (iVar31 == 0) {
            unaff_s3 = (code *)0x0;
          }
          else {
            unaff_s3 = (code *)0x0;
            (*(code *)(PTR_LAB_000f530c + 0x3aa4))(uVar12,iVar31);
          }
LAB_000b80d0:
          if (*param_2 == 1) {
            (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          }
          local_f0 = (code *)(*pcVar36)(pcVar34,0x25,local_100,0,0);
          iVar31 = 0;
          if (0 < iVar14) {
            do {
              iVar35 = iVar31 + 1;
              (*pcVar36)(pcVar34,0x59,local_100,iVar31,local_e8 + iVar31);
              iVar31 = iVar35;
            } while (iVar14 != iVar35);
          }
        }
        pcVar23 = local_f0;
        (*(code *)(PTR_LAB_000f52ec + 0x6b18))(param_1,unaff_s4);
        uVar18 = (*pcVar36)(pcVar34,10,0,iVar14,local_e8);
        (*(code *)(PTR_LAB_000f52e8 + -0x37ac))(pcVar34,uVar18,local_e4,0xfffffff4);
        if (param_5 == 0xb) {
          param_5 = 2;
        }
        if (0 < *(int *)(pcVar34 + 0x6c)) {
          *(short *)(*(int *)(pcVar34 + 0x6c) * 0x14 + *(int *)(pcVar34 + 0x68) + -0x12) =
               (short)param_5;
        }
        puVar17 = (uint *)param_1[0x1d];
        if ((uint *)param_1[0x1d] == (uint *)0x0) {
          puVar17 = param_1;
        }
        *(undefined1 *)((int)puVar17 + 0x15) = 1;
        if (local_b0 == (code *)0x0) {
          (*pcVar36)(pcVar34,5,local_100,local_f0 + 1,0);
          if ((int)local_f0 < 0) {
            local_f0 = (code *)(*(uint *)(pcVar34 + 0x6c) - 1);
          }
          if (*(char *)(*(int *)pcVar34 + 0x51) == '\0') {
            param_1 = (uint *)((int)local_f0 * 0x14 + *(int *)(pcVar34 + 0x68));
          }
          else {
            param_1 = (uint *)(PTR_DAT_000f52bc + 0x5860);
          }
          param_1[2] = *(uint *)(pcVar34 + 0x6c);
          (*pcVar36)(pcVar34,0x74,local_100,0,0);
          unaff_s3 = pcVar23;
          puVar20 = unaff_s4;
        }
        else {
          (*(code *)(PTR_LAB_000f530c + 0x4c88))(unaff_s3);
          puVar20 = unaff_s4;
        }
      }
    }
LAB_000b7aa8:
    puVar17 = local_58;
    if (local_58 != (uint *)0x0) {
      local_58 = (uint *)0x0;
      puVar17[0x3d] = local_5c;
    }
    (*(code *)(PTR_LAB_000f52ec + -0x7728))(pcVar32,piVar9);
    unaff_s4 = puVar20;
    unaff_s5 = param_1;
  } while( true );
}

