
/* WARNING: Type propagation algorithm not settling */

int fts3SegReaderNextDocid
              (Fts3Table *pTab,Fts3SegReader *pReader,char **ppOffsetList,int *pnOffsetList)

{
  undefined *puVar1;
  sqlite3_int64 *psVar2;
  byte *pbVar3;
  uint uVar4;
  char ***pppcVar5;
  int iVar6;
  int iVar7;
  char ****ppppcVar8;
  int iVar9;
  int *piVar10;
  sqlite3_blob *psVar11;
  uint uVar12;
  char ***pppcVar13;
  Fts3Table *p_00;
  char ****ppppcVar14;
  char ****ppppcVar15;
  char ****ppppcVar16;
  char *****pppppcVar17;
  char *****pppppcVar18;
  char *****pppppcVar19;
  char *****pppppcVar20;
  char *****pppppcVar21;
  int iVar22;
  char *pcVar23;
  undefined4 unaff_s0;
  byte bVar24;
  undefined *unaff_s1;
  char ****ppppcVar25;
  undefined4 unaff_s2;
  char ****ppppcVar26;
  char ****unaff_s3;
  int iVar27;
  char ****ppppcVar28;
  char ****ppppcVar29;
  undefined *puVar30;
  code *pcVar31;
  char *****pppppcStack_cc;
  char ****ppppcStack_a4;
  char *****pppppcStack_a0;
  Fts3Table *pFStack_9c;
  undefined4 uStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  char ****ppppcStack_8c;
  undefined *puStack_88;
  char **ppcStack_84;
  Fts3Table *pFStack_80;
  int *piStack_7c;
  Fts3SegReader *pFStack_78;
  code *pcStack_74;
  sqlite3_int64 *psStack_60;
  int *piStack_5c;
  u8 *puStack_58;
  char *p;
  u8 bEof;
  int iStack_34;
  int iStack_2c;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  pbVar3 = (byte *)pReader->pOffsetList;
  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  if ((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)) {
    bVar24 = 0;
    iVar9 = pReader->nDoclist;
    unaff_s2 = 0xffffff80;
    unaff_s3 = (char ****)pReader->aDoclist;
    psVar11 = pReader->pBlob;
    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;
    pppppcVar17 = (char *****)ppOffsetList;
    pppppcVar20 = (char *****)pnOffsetList;
    do {
      bVar24 = bVar24 | *pbVar3;
      p = (char *)pbVar3;
      while (bVar24 == 0) {
        ppppcVar14 = (char ****)((byte *)p + 1);
        unaff_s0 = 0;
        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {
          if (ppOffsetList != (char **)0x0) {
            *ppOffsetList = pReader->pOffsetList;
            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));
          }
          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);
          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;
          ppppcVar25 = (char ****)((byte *)p + 2);
          if (((byte *)p)[1] != 0) goto LAB_000b63a4;
          goto LAB_000b637c;
        }
        iVar22 = fts3SegReaderIncrRead(pReader);
        if (iVar22 != 0) goto LAB_000b6244;
        psVar11 = pReader->pBlob;
        bVar24 = *p;
      }
      pbVar3 = (byte *)p + 1;
      bVar24 = *p & 0x80;
    } while( true );
  }
  _bEof = (char ****)((uint)_bEof & 0xffffff);
  if (ppOffsetList != (char **)0x0) {
    *ppOffsetList = (char *)pbVar3;
    *pnOffsetList = pReader->nOffsetList + -1;
  }
  puStack_58 = &bEof;
  pppppcVar17 = (char *****)pReader->nDoclist;
  psStack_60 = &pReader->iDocid;
  ppppcVar14 = (char ****)pReader->aDoclist;
  piStack_5c = &pReader->nOffsetList;
  pppppcVar20 = (char *****)&p;
  p = (char *)pbVar3;
  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);
  if (bEof == '\0') {
    iVar22 = 0;
    pReader->pOffsetList = p;
  }
  else {
    iVar22 = 0;
    pReader->pOffsetList = (char *)0x0;
  }
  goto LAB_000b6244;
LAB_000b6384:
  pReader->pOffsetList = (char *)0x0;
  iVar22 = 0;
  p = (char *)ppppcVar14;
  goto LAB_000b6244;
  while (ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0) {
LAB_000b637c:
    ppppcVar14 = ppppcVar25;
    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;
  }
LAB_000b63a4:
  pppppcVar17 = (char *****)&DAT_0000000a;
  p = (char *)ppppcVar14;
  iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10);
  if (iVar22 == 0) {
    pcVar23 = p;
    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);
    pReader->pOffsetList = pcVar23 + iVar9;
    ppppcVar14 = _bEof;
    if (*(char *)&(pTab->base).pModule == '\0') {
      uVar12 = (uint)pReader->iDocid;
      iVar9 = *(int *)&pReader->iDocid;
      uVar4 = uVar12 + iStack_34;
      *(uint *)((int)&pReader->iDocid + 4) = uVar4;
      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);
    }
    else {
      uVar12 = (uint)pReader->iDocid;
      iVar9 = *(int *)&pReader->iDocid;
      uVar4 = uVar12 - iStack_34;
      *(uint *)((int)&pReader->iDocid + 4) = uVar4;
      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);
    }
  }
  else {
    iVar22 = 0;
  }
LAB_000b6244:
  if (iStack_2c == *(int *)puVar1) {
    return iVar22;
  }
  pcVar31 = sqlite3Fts3MsrIncrNext;
  iVar9 = iStack_2c;
  puVar30 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  psVar2 = psStack_60;
  piVar10 = *(int **)(puVar30 + 0xa55d8);
  puStack_88 = puVar1;
  pFStack_9c = (Fts3Table *)*piVar10;
  ppppcVar25 = (char ****)ppppcVar14[2];
  if (*(char *)(iVar9 + 0xeb) == '\0') {
    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);
  }
  else {
    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);
  }
  ppppcVar15 = ppppcVar14;
  pppppcVar18 = pppppcVar17;
  pppppcVar21 = pppppcVar20;
  uStack_98 = unaff_s0;
  puStack_94 = unaff_s1;
  uStack_90 = unaff_s2;
  ppppcStack_8c = unaff_s3;
  ppcStack_84 = ppOffsetList;
  pFStack_80 = pTab;
  piStack_7c = pnOffsetList;
  pFStack_78 = pReader;
  pcStack_74 = pcVar31;
  if (ppppcVar25 != (char ****)0x0) {
    pppcVar5 = *ppppcVar14;
    ppppcVar15 = (char ****)*pppcVar5;
    if (ppppcVar15[0x14] != (char ***)0x0) {
      iVar27 = *(int *)(puVar30 + 0xa52a4);
      iVar22 = *(int *)(puVar30 + 0xa5208);
      iVar6 = *(int *)(puVar30 + 0xa5208);
      while( true ) {
        ppppcVar26 = (char ****)ppppcVar15[0x16];
        ppppcVar28 = (char ****)ppppcVar15[0x17];
        pppppcVar18 = &ppppcStack_a4;
        pppppcVar21 = (char *****)&pppppcStack_a0;
        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);
        if (iVar7 != 0) break;
        if ((int)ppppcVar25 < 2) {
          ppppcVar16 = (char ****)0x1;
        }
        else {
          ppppcVar15 = (char ****)pppcVar5[1];
          ppppcVar29 = (char ****)0x1;
          ppppcVar16 = ppppcVar29;
          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {
            pppcVar13 = pppcVar5 + 2;
            ppppcVar8 = (char ****)ppppcVar15[0x17];
            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {
              pppppcVar21 = (char *****)0x0;
              pppppcVar18 = (char *****)0x0;
              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);
              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);
              if (iVar7 != 0) goto LAB_000b65d4;
              ppppcVar16 = ppppcVar25;
              if (((ppppcVar25 == ppppcVar29) ||
                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,
                  ppppcVar15[0x14] == (char ***)0x0)) ||
                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;
              ppppcVar8 = (char ****)ppppcVar15[0x17];
            }
          }
        }
        ppppcVar15 = ppppcVar25;
        pppppcVar21 = pppppcStack_cc;
        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);
        ppppcVar16 = ppppcStack_a4;
        pppppcVar18 = pppppcStack_a0;
        if (0 < (int)pppppcStack_a0) {
          if ((*pppcVar5)[0xe] == (char *)0x0) {
            pppcVar13 = ppppcVar14[6];
            if (-1 < (int)pppcVar13) goto LAB_000b66e8;
          }
          else {
            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);
            pppcVar13 = ppppcVar14[4];
            if ((int)ppppcVar14[5] < (int)pppppcVar19) {
              pcVar31 = *(code **)(puVar30 + 0xa519c);
              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);
              ppppcVar14[5] = (char ***)ppppcVar15;
              pppppcVar18 = pppppcVar19;
              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);
              if (pppcVar13 == (char ***)0x0) {
                iVar7 = 7;
                break;
              }
              ppppcVar14[4] = pppcVar13;
            }
            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);
            ppppcStack_a4 = (char ****)ppppcVar14[4];
            pppcVar13 = ppppcVar14[6];
            if (-1 < (int)pppcVar13) {
LAB_000b66e8:
              ppppcVar16 = (char ****)0x1;
              pppppcVar21 = (char *****)&pppppcStack_a0;
              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);
            }
            ppppcVar15 = ppppcVar16;
            pppppcVar18 = pppppcStack_a0;
            if ((int)pppppcStack_a0 < 1) {
              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;
              goto LAB_000b6720;
            }
          }
          iVar7 = 0;
          *pppppcVar20 = ppppcStack_a4;
          *pppppcVar17 = ppppcVar26;
          pppppcVar17[1] = ppppcVar28;
          *(char ******)psVar2 = pppppcVar18;
          break;
        }
        pppcVar13 = ppppcVar14[6];
        if (-1 < (int)pppcVar13) goto LAB_000b66e8;
        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;
LAB_000b66cc:
        ppppcVar15 = (char ****)*pppcVar5;
      }
      goto LAB_000b65d4;
    }
  }
LAB_000b6720:
  *pppppcVar20 = (char ****)0x0;
  iVar7 = 0;
LAB_000b65d4:
  if (pFStack_9c == (Fts3Table *)*piVar10) {
    return iVar7;
  }
  pcVar31 = *(code **)(puVar30 + 0xa55bc);
  p_00 = pFStack_9c;
  (*pcVar31)();
  if ((char *****)ppppcVar15[0xb] == pppppcVar18) {
    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);
    pppppcVar21[4] = (char ****)ppppcVar15[7];
    pppppcVar21[5] = (char ****)ppppcVar15[8];
    ppppcVar14 = (char ****)ppppcVar15[4];
    pppppcVar21[3] = (char ****)ppppcVar15[5];
    pppppcVar21[2] = ppppcVar14;
    return 0;
  }
  if ((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0) {
    *pppppcVar21 = (char ****)0x1;
    return 0;
  }
  iVar9 = sqlite3Fts3MsrIncrNext
                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],
                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),
                     (int *)(pppppcVar21 + 5));
  if (pppppcVar21[4] == (char ****)0x0) {
    puVar30[0xad15c] = 1;
    return iVar9;
  }
  return iVar9;
}



/* WARNING: Type propagation algorithm not settling */

int FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)

{
  undefined *puVar1;
  undefined4 *puVar2;
  byte ****ppppbVar3;
  uint uVar4;
  byte ***pppbVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  byte ***pppbVar9;
  int *piVar10;
  uint uVar11;
  byte ***pppbVar12;
  byte ****ppppbVar13;
  byte ****ppppbVar14;
  byte ****ppppbVar15;
  byte ****ppppbVar16;
  byte ****ppppbVar17;
  byte *****pppppbVar18;
  byte *****pppppbVar19;
  int iVar20;
  undefined4 unaff_s0;
  byte bVar21;
  undefined *unaff_s1;
  undefined4 unaff_s2;
  byte ***pppbVar22;
  byte ****unaff_s3;
  int iVar23;
  byte ***pppbVar24;
  byte ****ppppbVar25;
  undefined *puVar26;
  code *pcVar27;
  byte *****pppppbStack_cc;
  byte ****ppppbStack_a4;
  byte ****ppppbStack_a0;
  int iStack_9c;
  undefined4 uStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  byte ****ppppbStack_8c;
  undefined *puStack_88;
  byte ****ppppbStack_84;
  char *pcStack_80;
  byte *****pppppbStack_7c;
  int iStack_78;
  code *pcStack_74;
  undefined4 *local_60;
  int local_5c;
  byte ****local_58;
  byte ****local_3c;
  byte ****local_38;
  int local_34;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  ppppbVar3 = *(byte *****)(param_2 + 0x50);
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {
    bVar21 = 0;
    iVar6 = *(int *)(param_2 + 0x4c);
    unaff_s2 = 0xffffff80;
    unaff_s3 = *(byte *****)(param_2 + 0x48);
    iVar20 = *(int *)(param_2 + 0x34);
    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;
    ppppbVar15 = param_3;
    pppppbVar18 = param_4;
    do {
      bVar21 = bVar21 | *(byte *)ppppbVar3;
      local_3c = ppppbVar3;
      while (bVar21 == 0) {
        ppppbVar13 = (byte ****)((int)local_3c + 1);
        unaff_s0 = 0;
        if ((iVar20 == 0) ||
           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {
          if (param_3 != (byte ****)0x0) {
            *param_3 = *(byte ****)(param_2 + 0x50);
            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));
          }
          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);
          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;
          ppppbVar3 = (byte ****)((int)local_3c + 2);
          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;
          goto LAB_000b637c;
        }
        iVar20 = FUN_000b5eb4(param_2);
        if (iVar20 != 0) goto LAB_000b6244;
        iVar20 = *(int *)(param_2 + 0x34);
        bVar21 = *(byte *)local_3c;
      }
      ppppbVar3 = (byte ****)((int)local_3c + 1);
      bVar21 = *(byte *)local_3c & 0x80;
    } while( true );
  }
  local_38 = (byte ****)((uint)local_38 & 0xffffff);
  if (param_3 != (byte ****)0x0) {
    *param_3 = (byte ***)ppppbVar3;
    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);
  }
  local_58 = (byte ****)&local_38;
  ppppbVar15 = *(byte *****)(param_2 + 0x4c);
  local_60 = (undefined4 *)(param_2 + 0x58);
  ppppbVar13 = *(byte *****)(param_2 + 0x48);
  local_5c = param_2 + 0x54;
  pppppbVar18 = &local_3c;
  local_3c = ppppbVar3;
  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);
  if (local_38._0_1_ == '\0') {
    iVar20 = 0;
    *(byte *****)(param_2 + 0x50) = local_3c;
  }
  else {
    iVar20 = 0;
    *(undefined4 *)(param_2 + 0x50) = 0;
  }
  goto LAB_000b6244;
LAB_000b6384:
  *(undefined4 *)(param_2 + 0x50) = 0;
  iVar20 = 0;
  local_3c = ppppbVar13;
  goto LAB_000b6244;
  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {
LAB_000b637c:
    ppppbVar13 = ppppbVar3;
    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;
  }
LAB_000b63a4:
  ppppbVar15 = (byte ****)&DAT_0000000a;
  local_3c = ppppbVar13;
  iVar20 = FUN_000b5f80(param_2);
  if (iVar20 == 0) {
    ppppbVar3 = local_3c;
    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);
    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);
    ppppbVar13 = local_38;
    if (*param_1 == '\0') {
      uVar11 = *(uint *)(param_2 + 0x5c);
      uVar4 = uVar11 + local_34;
      *(uint *)(param_2 + 0x5c) = uVar4;
      *(byte **)(param_2 + 0x58) =
           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));
    }
    else {
      uVar11 = *(uint *)(param_2 + 0x5c);
      uVar4 = uVar11 - local_34;
      *(uint *)(param_2 + 0x5c) = uVar4;
      *(uint *)(param_2 + 0x58) =
           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);
    }
  }
  else {
    iVar20 = 0;
  }
LAB_000b6244:
  if (local_2c == *(int *)puVar1) {
    return iVar20;
  }
  pcVar27 = FUN_000b6454;
  iVar20 = local_2c;
  puVar26 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  puVar2 = local_60;
  piVar10 = *(int **)(puVar26 + 0xa55d8);
  puStack_88 = puVar1;
  iStack_9c = *piVar10;
  ppppbVar3 = (byte ****)ppppbVar13[2];
  if (*(char *)(iVar20 + 0xeb) == '\0') {
    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);
  }
  else {
    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);
  }
  ppppbVar14 = ppppbVar13;
  ppppbVar16 = ppppbVar15;
  pppppbVar19 = pppppbVar18;
  uStack_98 = unaff_s0;
  puStack_94 = unaff_s1;
  uStack_90 = unaff_s2;
  ppppbStack_8c = unaff_s3;
  ppppbStack_84 = param_3;
  pcStack_80 = param_1;
  pppppbStack_7c = param_4;
  iStack_78 = param_2;
  pcStack_74 = pcVar27;
  if (ppppbVar3 != (byte ****)0x0) {
    pppbVar5 = *ppppbVar13;
    ppppbVar14 = (byte ****)*pppbVar5;
    if (ppppbVar14[0x14] != (byte ***)0x0) {
      iVar23 = *(int *)(puVar26 + 0xa52a4);
      iVar6 = *(int *)(puVar26 + 0xa5208);
      iVar7 = *(int *)(puVar26 + 0xa5208);
      while( true ) {
        pppbVar22 = ppppbVar14[0x16];
        pppbVar24 = ppppbVar14[0x17];
        ppppbVar16 = (byte ****)&ppppbStack_a4;
        pppppbVar19 = &ppppbStack_a0;
        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);
        if (iVar8 != 0) break;
        if ((int)ppppbVar3 < 2) {
          ppppbVar16 = (byte ****)0x1;
        }
        else {
          ppppbVar14 = (byte ****)pppbVar5[1];
          ppppbVar25 = (byte ****)0x1;
          ppppbVar16 = ppppbVar25;
          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {
            pppbVar12 = pppbVar5 + 2;
            pppbVar9 = ppppbVar14[0x17];
            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {
              pppppbVar19 = (byte *****)0x0;
              ppppbVar16 = (byte ****)0x0;
              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);
              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);
              if (iVar8 != 0) goto LAB_000b65d4;
              ppppbVar16 = ppppbVar3;
              if (((ppppbVar3 == ppppbVar25) ||
                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,
                  ppppbVar14[0x14] == (byte ***)0x0)) ||
                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;
              pppbVar9 = ppppbVar14[0x17];
            }
          }
        }
        ppppbVar14 = ppppbVar3;
        pppppbVar19 = pppppbStack_cc;
        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);
        ppppbVar25 = ppppbStack_a4;
        ppppbVar16 = ppppbStack_a0;
        if (0 < (int)ppppbStack_a0) {
          if ((*pppbVar5)[0xe] == (byte *)0x0) {
            pppbVar12 = ppppbVar13[6];
            if (-1 < (int)pppbVar12) goto LAB_000b66e8;
          }
          else {
            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);
            pppbVar12 = ppppbVar13[4];
            if ((int)ppppbVar13[5] < (int)ppppbVar17) {
              pcVar27 = *(code **)(puVar26 + 0xa519c);
              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);
              ppppbVar13[5] = (byte ***)ppppbVar14;
              ppppbVar16 = ppppbVar17;
              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);
              if (pppbVar12 == (byte ***)0x0) {
                iVar8 = 7;
                break;
              }
              ppppbVar13[4] = pppbVar12;
            }
            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);
            ppppbStack_a4 = (byte ****)ppppbVar13[4];
            pppbVar12 = ppppbVar13[6];
            if (-1 < (int)pppbVar12) {
LAB_000b66e8:
              ppppbVar25 = (byte ****)0x1;
              pppppbVar19 = &ppppbStack_a0;
              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);
            }
            ppppbVar14 = ppppbVar25;
            ppppbVar16 = ppppbStack_a0;
            if ((int)ppppbStack_a0 < 1) {
              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;
              goto LAB_000b6720;
            }
          }
          iVar8 = 0;
          *pppppbVar18 = ppppbStack_a4;
          *ppppbVar15 = pppbVar22;
          ppppbVar15[1] = pppbVar24;
          *puVar2 = ppppbVar16;
          break;
        }
        pppbVar12 = ppppbVar13[6];
        if (-1 < (int)pppbVar12) goto LAB_000b66e8;
        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;
LAB_000b66cc:
        ppppbVar14 = (byte ****)*pppbVar5;
      }
      goto LAB_000b65d4;
    }
  }
LAB_000b6720:
  *pppppbVar18 = (byte ****)0x0;
  iVar8 = 0;
LAB_000b65d4:
  if (iStack_9c == *piVar10) {
    return iVar8;
  }
  pcVar27 = *(code **)(puVar26 + 0xa55bc);
  iVar20 = iStack_9c;
  (*pcVar27)();
  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {
    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);
    pppppbVar19[4] = (byte ****)ppppbVar14[7];
    pppppbVar19[5] = (byte ****)ppppbVar14[8];
    ppppbVar3 = (byte ****)ppppbVar14[4];
    pppppbVar19[3] = (byte ****)ppppbVar14[5];
    pppppbVar19[2] = ppppbVar3;
    return 0;
  }
  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {
    *pppppbVar19 = (byte ****)0x1;
    return 0;
  }
  iVar20 = FUN_000b6454();
  if (pppppbVar19[4] == (byte ****)0x0) {
    puVar26[0xad15c] = 1;
    return iVar20;
  }
  return iVar20;
}


lui gp,0xb
addiu gp,gp,-0x2bb8
addu gp,gp,t9
addiu sp,sp,-0x70
sw s4,0x58(sp)
sw s8,0x68(sp)
or s8,a1,zero
sw s7,0x64(sp)
or s7,a3,zero
sw s6,0x60(sp)
or s6,a0,zero
sw s5,0x5c(sp)
or s5,a2,zero
sw gp,0x20(sp)
sw ra,0x6c(sp)
sw s3,0x54(sp)
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
lw s4,-0x7b84(gp)
lbu v1,0x0(a0)
lw v0,0x50(a1)
lw a0,0x0(s4)
sw v0,0x34(sp)
sw a0,0x44(sp)
beq v1,zero,0x000b6284
_nop
lw v1,0x38(a1)
beq v1,zero,0x000b6284
_nop
beq a2,zero,0x000b61f8
_sb zero,0x38(sp)
sw v0,0x0(a2)
lw v0,0x54(a1)
addiu v0,v0,-0x1
sw v0,0x0(a3)
lw t9,-0x7ef0(gp)
addiu a0,sp,0x38
lw a2,0x4c(s8)
addiu v0,s8,0x58
lw a1,0x48(s8)
addiu v1,s8,0x54
sw a0,0x18(sp)
addiu a3,sp,0x34
or a0,zero,zero
sw v0,0x10(sp)
addiu t9,t9,-0x3268
jalr t9
_sw v1,0x14(sp)
lbu v0,0x38(sp)
beq v0,zero,0x000b6390
_lw gp,0x20(sp)
or v0,zero,zero
or t6,zero,zero
sw v0,0x50(s8)
lw a0,0x44(sp)
or v0,t6,zero
lw v1,0x0(s4)
bne a0,v1,0x000b6448
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
lw s1,-0x7eb8(gp)
or s0,zero,zero
lw v1,0x4c(s8)
li s2,-0x80
lw s3,0x48(s8)
lw a0,0x34(s8)
addiu s1,s1,0x5eb4
sw v1,0x2c(sp)
lbu v1,0x0(v0)
or s0,s0,v1
seb s0,s0
bne s0,zero,0x000b6308
_addiu v1,v0,0x1
beq a0,zero,0x000b6320
_addiu a1,v0,0x1
lw v1,0x28(s8)
lw a0,0x30(s8)
addu v1,v1,a0
sltu v1,v0,v1
bne v1,zero,0x000b6320
_or t9,s1,zero
bal 0x000b5eb4
_or a0,s8,zero
lw gp,0x20(sp)
bne v0,zero,0x000b6244
_or t6,v0,zero
lw v0,0x34(sp)
lbu v1,0x0(v0)
or s0,s0,v1
seb s0,s0
beq s0,zero,0x000b62b8
_lw a0,0x34(s8)
addiu v1,v0,0x1
sw v1,0x34(sp)
lbu s0,0x0(v0)
or v0,v1,zero
and s0,s0,s2
b 0x000b62a4
_seb s0,s0
beq s5,zero,0x000b6340
_sw a1,0x34(sp)
lw v1,0x50(s8)
sw v1,0x0(s5)
lw v1,0x50(s8)
subu v1,a1,v1
addiu v1,v1,-0x1
sw v1,0x0(s7)
lw v1,0x2c(sp)
addu s3,s3,v1
sltu v1,a1,s3
beq v1,zero,0x000b6384
_nop
lb v1,0x1(v0)
bne v1,zero,0x000b63a0
_addiu v0,v0,0x2
b 0x000b637c
_or a1,v0,zero
addiu v0,v0,0x1
lb v1,-0x1(v0)
bne v1,zero,0x000b63a4
_lw t9,-0x7eb8(gp)
or a1,v0,zero
bne s3,v0,0x000b6368
_sw v0,0x34(sp)
sw zero,0x50(s8)
b 0x000b6244
_or t6,zero,zero
lw v0,0x34(sp)
or t6,zero,zero
b 0x000b6244
_sw v0,0x50(s8)
lw t9,-0x7eb8(gp)
li a2,0xa
addiu t9,t9,0x5f80
bal 0x000b5f80
_or a0,s8,zero
lw gp,0x20(sp)
beq v0,zero,0x000b63c8
_or t6,v0,zero
b 0x000b6244
_or t6,zero,zero
lw t9,-0x7f54(gp)
addiu a1,sp,0x38
lw t7,0x34(sp)
addiu t9,t9,0xf74
jalr t9
_or a0,t7,zero
addu v0,t7,v0
lw gp,0x20(sp)
sw v0,0x50(s8)
lbu v0,0x0(s6)
beq v0,zero,0x000b6420
_lw v0,0x3c(sp)
lw a0,0x5c(s8)
lw v1,0x58(s8)
lw a1,0x38(sp)
subu v0,a0,v0
subu v1,v1,a1
sw v0,0x5c(s8)
sltu a0,a0,v0
subu v1,v1,a0
b 0x000b6244
_sw v1,0x58(s8)
lw v1,0x5c(s8)
lw a0,0x58(s8)
lw a1,0x38(sp)
addu v0,v1,v0
addu a0,a0,a1
sw v0,0x5c(s8)
sltu v1,v0,v1
addu v1,v1,a0
b 0x000b6244
_sw v1,0x58(s8)
lw t9,-0x7ba0(gp)
jalr t9
_nop
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}\n\n" comment (function_definition "int FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" primitive_type (function_declarator "FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)" identifier (parameter_list "(char *param_1,int param_2,byte ****param_3,byte *****param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte ****param_3" type_identifier (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))))) , (parameter_declaration "byte *****param_4" type_identifier (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte ****ppppbVar3;" type_identifier (pointer_declarator "****ppppbVar3" * (pointer_declarator "***ppppbVar3" * (pointer_declarator "**ppppbVar3" * (pointer_declarator "*ppppbVar3" * identifier)))) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte ***pppbVar5;" type_identifier (pointer_declarator "***pppbVar5" * (pointer_declarator "**pppbVar5" * (pointer_declarator "*pppbVar5" * identifier))) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte ***pppbVar9;" type_identifier (pointer_declarator "***pppbVar9" * (pointer_declarator "**pppbVar9" * (pointer_declarator "*pppbVar9" * identifier))) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte ***pppbVar12;" type_identifier (pointer_declarator "***pppbVar12" * (pointer_declarator "**pppbVar12" * (pointer_declarator "*pppbVar12" * identifier))) ;) (declaration "byte ****ppppbVar13;" type_identifier (pointer_declarator "****ppppbVar13" * (pointer_declarator "***ppppbVar13" * (pointer_declarator "**ppppbVar13" * (pointer_declarator "*ppppbVar13" * identifier)))) ;) (declaration "byte ****ppppbVar14;" type_identifier (pointer_declarator "****ppppbVar14" * (pointer_declarator "***ppppbVar14" * (pointer_declarator "**ppppbVar14" * (pointer_declarator "*ppppbVar14" * identifier)))) ;) (declaration "byte ****ppppbVar15;" type_identifier (pointer_declarator "****ppppbVar15" * (pointer_declarator "***ppppbVar15" * (pointer_declarator "**ppppbVar15" * (pointer_declarator "*ppppbVar15" * identifier)))) ;) (declaration "byte ****ppppbVar16;" type_identifier (pointer_declarator "****ppppbVar16" * (pointer_declarator "***ppppbVar16" * (pointer_declarator "**ppppbVar16" * (pointer_declarator "*ppppbVar16" * identifier)))) ;) (declaration "byte ****ppppbVar17;" type_identifier (pointer_declarator "****ppppbVar17" * (pointer_declarator "***ppppbVar17" * (pointer_declarator "**ppppbVar17" * (pointer_declarator "*ppppbVar17" * identifier)))) ;) (declaration "byte *****pppppbVar18;" type_identifier (pointer_declarator "*****pppppbVar18" * (pointer_declarator "****pppppbVar18" * (pointer_declarator "***pppppbVar18" * (pointer_declarator "**pppppbVar18" * (pointer_declarator "*pppppbVar18" * identifier))))) ;) (declaration "byte *****pppppbVar19;" type_identifier (pointer_declarator "*****pppppbVar19" * (pointer_declarator "****pppppbVar19" * (pointer_declarator "***pppppbVar19" * (pointer_declarator "**pppppbVar19" * (pointer_declarator "*pppppbVar19" * identifier))))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "byte ***pppbVar22;" type_identifier (pointer_declarator "***pppbVar22" * (pointer_declarator "**pppbVar22" * (pointer_declarator "*pppbVar22" * identifier))) ;) (declaration "byte ****unaff_s3;" type_identifier (pointer_declarator "****unaff_s3" * (pointer_declarator "***unaff_s3" * (pointer_declarator "**unaff_s3" * (pointer_declarator "*unaff_s3" * identifier)))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte ***pppbVar24;" type_identifier (pointer_declarator "***pppbVar24" * (pointer_declarator "**pppbVar24" * (pointer_declarator "*pppbVar24" * identifier))) ;) (declaration "byte ****ppppbVar25;" type_identifier (pointer_declarator "****ppppbVar25" * (pointer_declarator "***ppppbVar25" * (pointer_declarator "**ppppbVar25" * (pointer_declarator "*ppppbVar25" * identifier)))) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "byte *****pppppbStack_cc;" type_identifier (pointer_declarator "*****pppppbStack_cc" * (pointer_declarator "****pppppbStack_cc" * (pointer_declarator "***pppppbStack_cc" * (pointer_declarator "**pppppbStack_cc" * (pointer_declarator "*pppppbStack_cc" * identifier))))) ;) (declaration "byte ****ppppbStack_a4;" type_identifier (pointer_declarator "****ppppbStack_a4" * (pointer_declarator "***ppppbStack_a4" * (pointer_declarator "**ppppbStack_a4" * (pointer_declarator "*ppppbStack_a4" * identifier)))) ;) (declaration "byte ****ppppbStack_a0;" type_identifier (pointer_declarator "****ppppbStack_a0" * (pointer_declarator "***ppppbStack_a0" * (pointer_declarator "**ppppbStack_a0" * (pointer_declarator "*ppppbStack_a0" * identifier)))) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "byte ****ppppbStack_8c;" type_identifier (pointer_declarator "****ppppbStack_8c" * (pointer_declarator "***ppppbStack_8c" * (pointer_declarator "**ppppbStack_8c" * (pointer_declarator "*ppppbStack_8c" * identifier)))) ;) (declaration "undefined *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "byte ****ppppbStack_84;" type_identifier (pointer_declarator "****ppppbStack_84" * (pointer_declarator "***ppppbStack_84" * (pointer_declarator "**ppppbStack_84" * (pointer_declarator "*ppppbStack_84" * identifier)))) ;) (declaration "char *pcStack_80;" primitive_type (pointer_declarator "*pcStack_80" * identifier) ;) (declaration "byte *****pppppbStack_7c;" type_identifier (pointer_declarator "*****pppppbStack_7c" * (pointer_declarator "****pppppbStack_7c" * (pointer_declarator "***pppppbStack_7c" * (pointer_declarator "**pppppbStack_7c" * (pointer_declarator "*pppppbStack_7c" * identifier))))) ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "byte ****local_58;" type_identifier (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)))) ;) (declaration "byte ****local_3c;" type_identifier (pointer_declarator "****local_3c" * (pointer_declarator "***local_3c" * (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)))) ;) (declaration "byte ****local_38;" type_identifier (pointer_declarator "****local_38" * (pointer_declarator "***local_38" * (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)))) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "ppppbVar3 = *(byte *****)(param_2 + 0x50);" (assignment_expression "ppppbVar3 = *(byte *****)(param_2 + 0x50)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x50)" * (cast_expression "(byte *****)(param_2 + 0x50)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" if (parenthesized_expression "((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0))" ( (binary_expression "(*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)" (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(int *)(param_2 + 0x38) == 0)" ( (binary_expression "*(int *)(param_2 + 0x38) == 0" (pointer_expression "*(int *)(param_2 + 0x38)" * (cast_expression "(int *)(param_2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" { (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar6 = *(int *)(param_2 + 0x4c)" identifier = (pointer_expression "*(int *)(param_2 + 0x4c)" * (cast_expression "(int *)(param_2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s2 = 0xffffff80;" (assignment_expression "unaff_s2 = 0xffffff80" identifier = number_literal) ;) (expression_statement "unaff_s3 = *(byte *****)(param_2 + 0x48);" (assignment_expression "unaff_s3 = *(byte *****)(param_2 + 0x48)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x48)" * (cast_expression "(byte *****)(param_2 + 0x48)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" identifier = (pointer_expression "*(int *)(param_2 + 0x34)" * (cast_expression "(int *)(param_2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;" (assignment_expression "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4" identifier = (binary_expression "PTR_LAB_0015b6f8 + 0x5eb4" identifier + number_literal)) ;) (expression_statement "ppppbVar15 = param_3;" (assignment_expression "ppppbVar15 = param_3" identifier = identifier) ;) (expression_statement "pppppbVar18 = param_4;" (assignment_expression "pppppbVar18 = param_4" identifier = identifier) ;) (do_statement "do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );" do (compound_statement "{\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    }" { (expression_statement "bVar21 = bVar21 | *(byte *)ppppbVar3;" (assignment_expression "bVar21 = bVar21 | *(byte *)ppppbVar3" identifier = (binary_expression "bVar21 | *(byte *)ppppbVar3" identifier | (pointer_expression "*(byte *)ppppbVar3" * (cast_expression "(byte *)ppppbVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" identifier = identifier) ;) (while_statement "while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" while (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" { (expression_statement "ppppbVar13 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar13 = (byte ****)((int)local_3c + 1)" identifier = (cast_expression "(byte ****)((int)local_3c + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (if_statement "if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" if (parenthesized_expression "((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))))" ( (binary_expression "(iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" ( (binary_expression "local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" identifier < (cast_expression "(byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" ( (binary_expression "*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) )))) ))) )) (compound_statement "{\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" { (if_statement "if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" if (parenthesized_expression "(param_3 != (byte ****)0x0)" ( (binary_expression "param_3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" { (expression_statement "*param_3 = *(byte ****)(param_2 + 0x50);" (assignment_expression "*param_3 = *(byte ****)(param_2 + 0x50)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(byte ****)(param_2 + 0x50)" * (cast_expression "(byte ****)(param_2 + 0x50)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));" (assignment_expression "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" (pointer_expression "*param_4" * identifier) = (cast_expression "(byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" ( (binary_expression "(int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50))" (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - *(int *)(param_2 + 0x50))" ( (binary_expression "-1 - *(int *)(param_2 + 0x50)" number_literal - (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ))) )))) ;) })) (expression_statement "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);" (assignment_expression "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6)" identifier = (cast_expression "(byte ****)((int)unaff_s3 + iVar6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)unaff_s3 + iVar6)" ( (binary_expression "(int)unaff_s3 + iVar6" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 <= ppppbVar13)" ( (binary_expression "unaff_s3 <= ppppbVar13" identifier <= identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 2);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 2)" identifier = (cast_expression "(byte ****)((int)local_3c + 2)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 2)" ( (binary_expression "(int)local_3c + 2" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;" if (parenthesized_expression "(*(byte *)((int)local_3c + 1) != 0)" ( (binary_expression "*(byte *)((int)local_3c + 1) != 0" (pointer_expression "*(byte *)((int)local_3c + 1)" * (cast_expression "(byte *)((int)local_3c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000b63a4;" goto statement_identifier ;)) (goto_statement "goto LAB_000b637c;" goto statement_identifier ;) })) (expression_statement "iVar20 = FUN_000b5eb4(param_2);" (assignment_expression "iVar20 = FUN_000b5eb4(param_2)" identifier = (call_expression "FUN_000b5eb4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) goto LAB_000b6244;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;)) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" identifier = (pointer_expression "*(int *)(param_2 + 0x34)" * (cast_expression "(int *)(param_2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "bVar21 = *(byte *)local_3c;" (assignment_expression "bVar21 = *(byte *)local_3c" identifier = (pointer_expression "*(byte *)local_3c" * (cast_expression "(byte *)local_3c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 1)" identifier = (cast_expression "(byte ****)((int)local_3c + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar21 = *(byte *)local_3c & 0x80;" (assignment_expression "bVar21 = *(byte *)local_3c & 0x80" identifier = (binary_expression "*(byte *)local_3c & 0x80" (pointer_expression "*(byte *)local_3c" * (cast_expression "(byte *)local_3c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_38 = (byte ****)((uint)local_38 & 0xffffff);" (assignment_expression "local_38 = (byte ****)((uint)local_38 & 0xffffff)" identifier = (cast_expression "(byte ****)((uint)local_38 & 0xffffff)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((uint)local_38 & 0xffffff)" ( (binary_expression "(uint)local_38 & 0xffffff" (cast_expression "(uint)local_38" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" if (parenthesized_expression "(param_3 != (byte ****)0x0)" ( (binary_expression "param_3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" { (expression_statement "*param_3 = (byte ***)ppppbVar3;" (assignment_expression "*param_3 = (byte ***)ppppbVar3" (pointer_expression "*param_3" * identifier) = (cast_expression "(byte ***)ppppbVar3" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);" (assignment_expression "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1)" (pointer_expression "*param_4" * identifier) = (cast_expression "(byte ****)(*(int *)(param_2 + 0x54) + -1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(param_2 + 0x54) + -1)" ( (binary_expression "*(int *)(param_2 + 0x54) + -1" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "local_58 = (byte ****)&local_38;" (assignment_expression "local_58 = (byte ****)&local_38" identifier = (cast_expression "(byte ****)&local_38" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_38" & identifier))) ;) (expression_statement "ppppbVar15 = *(byte *****)(param_2 + 0x4c);" (assignment_expression "ppppbVar15 = *(byte *****)(param_2 + 0x4c)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x4c)" * (cast_expression "(byte *****)(param_2 + 0x4c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_60 = (undefined4 *)(param_2 + 0x58);" (assignment_expression "local_60 = (undefined4 *)(param_2 + 0x58)" identifier = (cast_expression "(undefined4 *)(param_2 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) ;) (expression_statement "ppppbVar13 = *(byte *****)(param_2 + 0x48);" (assignment_expression "ppppbVar13 = *(byte *****)(param_2 + 0x48)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x48)" * (cast_expression "(byte *****)(param_2 + 0x48)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_5c = param_2 + 0x54;" (assignment_expression "local_5c = param_2 + 0x54" identifier = (binary_expression "param_2 + 0x54" identifier + number_literal)) ;) (expression_statement "pppppbVar18 = &local_3c;" (assignment_expression "pppppbVar18 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x3268)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x3268)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x3268)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x3268" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" if (parenthesized_expression "(local_38._0_1_ == '\0')" ( (binary_expression "local_38._0_1_ == '\0'" (field_expression "local_38._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "*(byte *****)(param_2 + 0x50) = local_3c;" (assignment_expression "*(byte *****)(param_2 + 0x50) = local_3c" (pointer_expression "*(byte *****)(param_2 + 0x50)" * (cast_expression "(byte *****)(param_2 + 0x50)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" else (compound_statement "{\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" * (cast_expression "(undefined4 *)(param_2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (labeled_statement "LAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" * (cast_expression "(undefined4 *)(param_2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" identifier = identifier) ;) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (while_statement "while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" while (parenthesized_expression "(ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0)" ( (comma_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar13 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar13 + 1)" ( (binary_expression "(int)ppppbVar13 + 1" (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "*(byte *)ppppbVar13 == 0" (pointer_expression "*(byte *)ppppbVar13" * (cast_expression "(byte *)ppppbVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal)) )) (compound_statement "{\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" { (labeled_statement "LAB_000b637c:\n    ppppbVar13 = ppppbVar3;" statement_identifier : (expression_statement "ppppbVar13 = ppppbVar3;" (assignment_expression "ppppbVar13 = ppppbVar3" identifier = identifier) ;)) (if_statement "if (unaff_s3 == ppppbVar13) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 == ppppbVar13)" ( (binary_expression "unaff_s3 == ppppbVar13" identifier == identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) })) (labeled_statement "LAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;" statement_identifier : (expression_statement "ppppbVar15 = (byte ****)&DAT_0000000a;" (assignment_expression "ppppbVar15 = (byte ****)&DAT_0000000a" identifier = (cast_expression "(byte ****)&DAT_0000000a" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" identifier = identifier) ;) (expression_statement "iVar20 = FUN_000b5f80(param_2);" (assignment_expression "iVar20 = FUN_000b5f80(param_2)" identifier = (call_expression "FUN_000b5f80(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }" { (expression_statement "ppppbVar3 = local_3c;" (assignment_expression "ppppbVar3 = local_3c" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))" ( (pointer_expression "*(code *)(PTR_LAB_0015b65c + 0xf74)" * (cast_expression "(code *)(PTR_LAB_0015b65c + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b65c + 0xf74)" ( (binary_expression "PTR_LAB_0015b65c + 0xf74" identifier + number_literal) )))) )) (argument_list "(local_3c,&local_38)" ( identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);" (assignment_expression "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6)" (pointer_expression "*(byte **)(param_2 + 0x50)" * (cast_expression "(byte **)(param_2 + 0x50)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = (cast_expression "(byte *)((int)ppppbVar3 + iVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbVar3 + iVar6)" ( (binary_expression "(int)ppppbVar3 + iVar6" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "ppppbVar13 = local_38;" (assignment_expression "ppppbVar13 = local_38" identifier = identifier) ;) (if_statement "if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }" { (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar11 + local_34;" (assignment_expression "uVar4 = uVar11 + local_34" identifier = (binary_expression "uVar11 + local_34" identifier + identifier)) ;) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));" (assignment_expression "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" (pointer_expression "*(byte **)(param_2 + 0x58)" * (cast_expression "(byte **)(param_2 + 0x58)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) = (cast_expression "(byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" ( (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58)" (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11)" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar4 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar11)" ( (binary_expression "uVar4 < uVar11" identifier < identifier) )))) + (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" else (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" { (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar11 - local_34;" (assignment_expression "uVar4 = uVar11 - local_34" identifier = (binary_expression "uVar11 - local_34" identifier - identifier)) ;) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);" (assignment_expression "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) = (binary_expression "(*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (parenthesized_expression "(*(int *)(param_2 + 0x58) - (int)local_38)" ( (binary_expression "*(int *)(param_2 + 0x58) - (int)local_38" (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(uVar11 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar4)" ( (binary_expression "uVar11 < uVar4" identifier < identifier) ))))) ;) }))) }) (else_clause "else {\n    iVar20 = 0;\n  }" else (compound_statement "{\n    iVar20 = 0;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar20;\n  }" { (return_statement "return iVar20;" return identifier ;) }))) (expression_statement "pcVar27 = FUN_000b6454;" (assignment_expression "pcVar27 = FUN_000b6454" identifier = identifier) ;) (expression_statement "iVar20 = local_2c;" (assignment_expression "iVar20 = local_2c" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar26 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = local_60;" (assignment_expression "puVar2 = local_60" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(puVar26 + 0xa55d8);" (assignment_expression "piVar10 = *(int **)(puVar26 + 0xa55d8)" identifier = (pointer_expression "*(int **)(puVar26 + 0xa55d8)" * (cast_expression "(int **)(puVar26 + 0xa55d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55d8)" ( (binary_expression "puVar26 + 0xa55d8" identifier + number_literal) ))))) ;) (expression_statement "puStack_88 = puVar1;" (assignment_expression "puStack_88 = puVar1" identifier = identifier) ;) (expression_statement "iStack_9c = *piVar10;" (assignment_expression "iStack_9c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "ppppbVar3 = (byte ****)ppppbVar13[2];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar13[2]" identifier = (cast_expression "(byte ****)ppppbVar13[2]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" if (parenthesized_expression "(*(char *)(iVar20 + 0xeb) == '\0')" ( (binary_expression "*(char *)(iVar20 + 0xeb) == '\0'" (pointer_expression "*(char *)(iVar20 + 0xeb)" * (cast_expression "(char *)(iVar20 + 0xeb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }" { (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" identifier = (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x26f0)" ( (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x26f0" (pointer_expression "*(int *)(puVar26 + 0xa526c)" * (cast_expression "(int *)(puVar26 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa526c)" ( (binary_expression "puVar26 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" else (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" { (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" identifier = (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x2674)" ( (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x2674" (pointer_expression "*(int *)(puVar26 + 0xa526c)" * (cast_expression "(int *)(puVar26 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa526c)" ( (binary_expression "puVar26 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }))) (expression_statement "ppppbVar14 = ppppbVar13;" (assignment_expression "ppppbVar14 = ppppbVar13" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbVar15;" (assignment_expression "ppppbVar16 = ppppbVar15" identifier = identifier) ;) (expression_statement "pppppbVar19 = pppppbVar18;" (assignment_expression "pppppbVar19 = pppppbVar18" identifier = identifier) ;) (expression_statement "uStack_98 = unaff_s0;" (assignment_expression "uStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_94 = unaff_s1;" (assignment_expression "puStack_94 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_90 = unaff_s2;" (assignment_expression "uStack_90 = unaff_s2" identifier = identifier) ;) (expression_statement "ppppbStack_8c = unaff_s3;" (assignment_expression "ppppbStack_8c = unaff_s3" identifier = identifier) ;) (expression_statement "ppppbStack_84 = param_3;" (assignment_expression "ppppbStack_84 = param_3" identifier = identifier) ;) (expression_statement "pcStack_80 = param_1;" (assignment_expression "pcStack_80 = param_1" identifier = identifier) ;) (expression_statement "pppppbStack_7c = param_4;" (assignment_expression "pppppbStack_7c = param_4" identifier = identifier) ;) (expression_statement "iStack_78 = param_2;" (assignment_expression "iStack_78 = param_2" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar27;" (assignment_expression "pcStack_74 = pcVar27" identifier = identifier) ;) (if_statement "if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" if (parenthesized_expression "(ppppbVar3 != (byte ****)0x0)" ( (binary_expression "ppppbVar3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" { (expression_statement "pppbVar5 = *ppppbVar13;" (assignment_expression "pppbVar5 = *ppppbVar13" identifier = (pointer_expression "*ppppbVar13" * identifier)) ;) (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" identifier = (cast_expression "(byte ****)*pppbVar5" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar5" * identifier))) ;) (if_statement "if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" if (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" ( (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) != (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" { (expression_statement "iVar23 = *(int *)(puVar26 + 0xa52a4);" (assignment_expression "iVar23 = *(int *)(puVar26 + 0xa52a4)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa52a4)" * (cast_expression "(int *)(puVar26 + 0xa52a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa52a4)" ( (binary_expression "puVar26 + 0xa52a4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar6 = *(int *)(puVar26 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa5208)" * (cast_expression "(int *)(puVar26 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa5208)" ( (binary_expression "puVar26 + 0xa5208" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar7 = *(int *)(puVar26 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa5208)" * (cast_expression "(int *)(puVar26 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa5208)" ( (binary_expression "puVar26 + 0xa5208" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" { (expression_statement "pppbVar22 = ppppbVar14[0x16];" (assignment_expression "pppbVar22 = ppppbVar14[0x16]" identifier = (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ])) ;) (expression_statement "pppbVar24 = ppppbVar14[0x17];" (assignment_expression "pppbVar24 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppppbVar16 = (byte ****)&ppppbStack_a4;" (assignment_expression "ppppbVar16 = (byte ****)&ppppbStack_a4" identifier = (cast_expression "(byte ****)&ppppbStack_a4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&ppppbStack_a4" & identifier))) ;) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" identifier = (pointer_expression "&ppppbStack_a0" & identifier)) ;) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" identifier = (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" ( (pointer_expression "*(code *)(iVar23 + 0x6168)" * (cast_expression "(code *)(iVar23 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x6168)" ( (binary_expression "iVar23 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) ;) (if_statement "if (iVar8 != 0) break;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" if (parenthesized_expression "((int)ppppbVar3 < 2)" ( (binary_expression "(int)ppppbVar3 < 2" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          ppppbVar16 = (byte ****)0x1;\n        }" { (expression_statement "ppppbVar16 = (byte ****)0x1;" (assignment_expression "ppppbVar16 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" else (compound_statement "{\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" { (expression_statement "ppppbVar14 = (byte ****)pppbVar5[1];" (assignment_expression "ppppbVar14 = (byte ****)pppbVar5[1]" identifier = (cast_expression "(byte ****)pppbVar5[1]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "pppbVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppbVar16 = ppppbVar25;" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) ;) (if_statement "if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" if (parenthesized_expression "((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22))" ( (binary_expression "(ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)" (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" ( (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) != (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) && (parenthesized_expression "(ppppbVar14[0x16] == pppbVar22)" ( (binary_expression "ppppbVar14[0x16] == pppbVar22" (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" { (expression_statement "pppbVar12 = pppbVar5 + 2;" (assignment_expression "pppbVar12 = pppbVar5 + 2" identifier = (binary_expression "pppbVar5 + 2" identifier + number_literal)) ;) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) (while_statement "while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" while (parenthesized_expression "(ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24)" ( (comma_expression "ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) , (binary_expression "pppbVar9 == pppbVar24" identifier == identifier)) )) (compound_statement "{\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" { (expression_statement "pppppbVar19 = (byte *****)0x0;" (assignment_expression "pppppbVar19 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppbVar16 = (byte ****)0x0;" (assignment_expression "ppppbVar16 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" identifier = (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" ( (pointer_expression "*(code *)(iVar23 + 0x6168)" * (cast_expression "(code *)(iVar23 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x6168)" ( (binary_expression "iVar23 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) ;) (expression_statement "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);" (assignment_expression "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar25 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar25 + 1)" ( (binary_expression "(int)ppppbVar25 + 1" (cast_expression "(int)ppppbVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_000b65d4;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;)) (expression_statement "ppppbVar16 = ppppbVar3;" (assignment_expression "ppppbVar16 = ppppbVar3" identifier = identifier) ;) (if_statement "if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;" if (parenthesized_expression "(((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22))" ( (binary_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" (parenthesized_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0))" ( (binary_expression "(ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" (parenthesized_expression "(ppppbVar3 == ppppbVar25)" ( (binary_expression "ppppbVar3 == ppppbVar25" identifier == identifier) )) || (parenthesized_expression "(ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" ( (comma_expression "ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar12" identifier = (cast_expression "(byte ****)*pppbVar12" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar12" * identifier))) , (comma_expression "ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) , (binary_expression "ppppbVar14[0x14] == (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)))) ))) )) || (parenthesized_expression "(pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" ( (comma_expression "pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22" (assignment_expression "pppbVar12 = pppbVar12 + 1" identifier = (binary_expression "pppbVar12 + 1" identifier + number_literal)) , (binary_expression "ppppbVar14[0x16] != pppbVar22" (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ]) != identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) })) })) }))) (expression_statement "ppppbVar14 = ppppbVar3;" (assignment_expression "ppppbVar14 = ppppbVar3" identifier = identifier) ;) (expression_statement "pppppbVar19 = pppppbStack_cc;" (assignment_expression "pppppbVar19 = pppppbStack_cc" identifier = identifier) ;) (expression_statement "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);" (call_expression "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16)" (parenthesized_expression "(*(code *)(iVar6 + 0x2944))" ( (pointer_expression "*(code *)(iVar6 + 0x2944)" * (cast_expression "(code *)(iVar6 + 0x2944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2944)" ( (binary_expression "iVar6 + 0x2944" identifier + number_literal) )))) )) (argument_list "(*ppppbVar13,ppppbVar3,ppppbVar16)" ( (pointer_expression "*ppppbVar13" * identifier) , identifier , identifier ))) ;) (expression_statement "ppppbVar25 = ppppbStack_a4;" (assignment_expression "ppppbVar25 = ppppbStack_a4" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" identifier = identifier) ;) (if_statement "if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" if (parenthesized_expression "(0 < (int)ppppbStack_a0)" ( (binary_expression "0 < (int)ppppbStack_a0" number_literal < (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" { (if_statement "if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" if (parenthesized_expression "((*pppbVar5)[0xe] == (byte *)0x0)" ( (binary_expression "(*pppbVar5)[0xe] == (byte *)0x0" (subscript_expression "(*pppbVar5)[0xe]" (parenthesized_expression "(*pppbVar5)" ( (pointer_expression "*pppbVar5" * identifier) )) [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }" { (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) }) (else_clause "else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" else (compound_statement "{\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" { (expression_statement "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);" (assignment_expression "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbStack_a0 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_a0 + 1)" ( (binary_expression "(int)ppppbStack_a0 + 1" (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppbVar12 = ppppbVar13[4];" (assignment_expression "pppbVar12 = ppppbVar13[4]" identifier = (subscript_expression "ppppbVar13[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" if (parenthesized_expression "((int)ppppbVar13[5] < (int)ppppbVar17)" ( (binary_expression "(int)ppppbVar13[5] < (int)ppppbVar17" (cast_expression "(int)ppppbVar13[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar13[5]" identifier [ number_literal ])) < (cast_expression "(int)ppppbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" { (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa519c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa519c)" identifier = (pointer_expression "*(code **)(puVar26 + 0xa519c)" * (cast_expression "(code **)(puVar26 + 0xa519c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa519c)" ( (binary_expression "puVar26 + 0xa519c" identifier + number_literal) ))))) ;) (expression_statement "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);" (assignment_expression "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2)" identifier = (cast_expression "(byte ****)((int)ppppbVar17 * 2)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar17 * 2)" ( (binary_expression "(int)ppppbVar17 * 2" (cast_expression "(int)ppppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppbVar13[5] = (byte ***)ppppbVar14;" (assignment_expression "ppppbVar13[5] = (byte ***)ppppbVar14" (subscript_expression "ppppbVar13[5]" identifier [ number_literal ]) = (cast_expression "(byte ***)ppppbVar14" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppbVar16 = ppppbVar17;" (assignment_expression "ppppbVar16 = ppppbVar17" identifier = identifier) ;) (expression_statement "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);" (assignment_expression "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12)" identifier = (cast_expression "(byte ***)(*pcVar27)(pppbVar12)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "(*pcVar27)(pppbVar12)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pppbVar12)" ( identifier ))))) ;) (if_statement "if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }" if (parenthesized_expression "(pppbVar12 == (byte ***)0x0)" ( (binary_expression "pppbVar12 == (byte ***)0x0" identifier == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n                iVar8 = 7;\n                break;\n              }" { (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "ppppbVar13[4] = pppbVar12;" (assignment_expression "ppppbVar13[4] = pppbVar12" (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);" (call_expression "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17)" (parenthesized_expression "(**(code **)(puVar26 + 0xa55dc))" ( (pointer_expression "**(code **)(puVar26 + 0xa55dc)" * (pointer_expression "*(code **)(puVar26 + 0xa55dc)" * (cast_expression "(code **)(puVar26 + 0xa55dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55dc)" ( (binary_expression "puVar26 + 0xa55dc" identifier + number_literal) ))))) )) (argument_list "(pppbVar12,ppppbVar25,ppppbVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppbStack_a4 = (byte ****)ppppbVar13[4];" (assignment_expression "ppppbStack_a4 = (byte ****)ppppbVar13[4]" identifier = (cast_expression "(byte ****)ppppbVar13[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]))) ;) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" { (labeled_statement "LAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;" statement_identifier : (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" identifier = (pointer_expression "&ppppbStack_a0" & identifier)) ;) (expression_statement "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);" (call_expression "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4)" (parenthesized_expression "(*(code *)(iVar7 + 0x5220))" ( (pointer_expression "*(code *)(iVar7 + 0x5220)" * (cast_expression "(code *)(iVar7 + 0x5220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5220)" ( (binary_expression "iVar7 + 0x5220" identifier + number_literal) )))) )) (argument_list "(pppbVar12,1,&ppppbStack_a4)" ( identifier , number_literal , (pointer_expression "&ppppbStack_a4" & identifier) ))) ;) })) (expression_statement "ppppbVar14 = ppppbVar25;" (assignment_expression "ppppbVar14 = ppppbVar25" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" identifier = identifier) ;) (if_statement "if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" if (parenthesized_expression "((int)ppppbStack_a0 < 1)" ( (binary_expression "(int)ppppbStack_a0 < 1" (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" { (if_statement "if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;" if (parenthesized_expression "((**ppppbVar13)[0x14] != (byte *)0x0)" ( (binary_expression "(**ppppbVar13)[0x14] != (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" ( (pointer_expression "**ppppbVar13" * (pointer_expression "*ppppbVar13" * identifier)) )) [ number_literal ]) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b66cc;" goto statement_identifier ;)) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;) })) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "*pppppbVar18 = ppppbStack_a4;" (assignment_expression "*pppppbVar18 = ppppbStack_a4" (pointer_expression "*pppppbVar18" * identifier) = identifier) ;) (expression_statement "*ppppbVar15 = pppbVar22;" (assignment_expression "*ppppbVar15 = pppbVar22" (pointer_expression "*ppppbVar15" * identifier) = identifier) ;) (expression_statement "ppppbVar15[1] = pppbVar24;" (assignment_expression "ppppbVar15[1] = pppbVar24" (subscript_expression "ppppbVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = ppppbVar16;" (assignment_expression "*puVar2 = ppppbVar16" (pointer_expression "*puVar2" * identifier) = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) (if_statement "if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;" if (parenthesized_expression "((**ppppbVar13)[0x14] == (byte *)0x0)" ( (binary_expression "(**ppppbVar13)[0x14] == (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" ( (pointer_expression "**ppppbVar13" * (pointer_expression "*ppppbVar13" * identifier)) )) [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;)) (labeled_statement "LAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;" statement_identifier : (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" identifier = (cast_expression "(byte ****)*pppbVar5" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar5" * identifier))) ;)) })) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;" statement_identifier : (expression_statement "*pppppbVar18 = (byte ****)0x0;" (assignment_expression "*pppppbVar18 = (byte ****)0x0" (pointer_expression "*pppppbVar18" * identifier) = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_9c == *piVar10)" ( (binary_expression "iStack_9c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa55bc);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa55bc)" identifier = (pointer_expression "*(code **)(puVar26 + 0xa55bc)" * (cast_expression "(code **)(puVar26 + 0xa55bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55bc)" ( (binary_expression "puVar26 + 0xa55bc" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iStack_9c;" (assignment_expression "iVar20 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" if (parenthesized_expression "((byte ****)ppppbVar14[0xb] == ppppbVar16)" ( (binary_expression "(byte ****)ppppbVar14[0xb] == ppppbVar16" (cast_expression "(byte ****)ppppbVar14[0xb]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[0xb]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" ( (binary_expression "*(int *)(pcVar27 + 0xa4f44) + -0x2edc" (pointer_expression "*(int *)(pcVar27 + 0xa4f44)" * (cast_expression "(int *)(pcVar27 + 0xa4f44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0xa4f44)" ( (binary_expression "pcVar27 + 0xa4f44" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) ))) ;) (expression_statement "pppppbVar19[4] = (byte ****)ppppbVar14[7];" (assignment_expression "pppppbVar19[4] = (byte ****)ppppbVar14[7]" (subscript_expression "pppppbVar19[4]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[7]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[7]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[5] = (byte ****)ppppbVar14[8];" (assignment_expression "pppppbVar19[5] = (byte ****)ppppbVar14[8]" (subscript_expression "pppppbVar19[5]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[8]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[8]" identifier [ number_literal ]))) ;) (expression_statement "ppppbVar3 = (byte ****)ppppbVar14[4];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar14[4]" identifier = (cast_expression "(byte ****)ppppbVar14[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[4]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[3] = (byte ****)ppppbVar14[5];" (assignment_expression "pppppbVar19[3] = (byte ****)ppppbVar14[5]" (subscript_expression "pppppbVar19[3]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[5]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[5]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[2] = ppppbVar3;" (assignment_expression "pppppbVar19[2] = ppppbVar3" (subscript_expression "pppppbVar19[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" if (parenthesized_expression "(ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0)" ( (binary_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0" (subscript_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17]" identifier [ (binary_expression "(int)ppppbVar16 * 6 + 0x17" (binary_expression "(int)ppppbVar16 * 6" (cast_expression "(int)ppppbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" { (expression_statement "*pppppbVar19 = (byte ****)0x1;" (assignment_expression "*pppppbVar19 = (byte ****)0x1" (pointer_expression "*pppppbVar19" * identifier) = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar20 = FUN_000b6454();" (assignment_expression "iVar20 = FUN_000b6454()" identifier = (call_expression "FUN_000b6454()" identifier (argument_list "()" ( )))) ;) (if_statement "if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" if (parenthesized_expression "(pppppbVar19[4] == (byte ****)0x0)" ( (binary_expression "pppppbVar19[4] == (byte ****)0x0" (subscript_expression "pppppbVar19[4]" identifier [ number_literal ]) == (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" { (expression_statement "puVar26[0xad15c] = 1;" (assignment_expression "puVar26[0xad15c] = 1" (subscript_expression "puVar26[0xad15c]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar20;" return identifier ;) })) (return_statement "return iVar20;" return identifier ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint fts3SegReaderNextDocid\n              (Fts3Table *pTab,Fts3SegReader *pReader,char **ppOffsetList,int *pnOffsetList)\n\n{\n  undefined *puVar1;\n  sqlite3_int64 *psVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char ***pppcVar5;\n  int iVar6;\n  int iVar7;\n  char ****ppppcVar8;\n  int iVar9;\n  int *piVar10;\n  sqlite3_blob *psVar11;\n  uint uVar12;\n  char ***pppcVar13;\n  Fts3Table *p_00;\n  char ****ppppcVar14;\n  char ****ppppcVar15;\n  char ****ppppcVar16;\n  char *****pppppcVar17;\n  char *****pppppcVar18;\n  char *****pppppcVar19;\n  char *****pppppcVar20;\n  char *****pppppcVar21;\n  int iVar22;\n  char *pcVar23;\n  undefined4 unaff_s0;\n  byte bVar24;\n  undefined *unaff_s1;\n  char ****ppppcVar25;\n  undefined4 unaff_s2;\n  char ****ppppcVar26;\n  char ****unaff_s3;\n  int iVar27;\n  char ****ppppcVar28;\n  char ****ppppcVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  char *****pppppcStack_cc;\n  char ****ppppcStack_a4;\n  char *****pppppcStack_a0;\n  Fts3Table *pFStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  char ****ppppcStack_8c;\n  undefined *puStack_88;\n  char **ppcStack_84;\n  Fts3Table *pFStack_80;\n  int *piStack_7c;\n  Fts3SegReader *pFStack_78;\n  code *pcStack_74;\n  sqlite3_int64 *psStack_60;\n  int *piStack_5c;\n  u8 *puStack_58;\n  char *p;\n  u8 bEof;\n  int iStack_34;\n  int iStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  pbVar3 = (byte *)pReader->pOffsetList;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)) {\n    bVar24 = 0;\n    iVar9 = pReader->nDoclist;\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = (char ****)pReader->aDoclist;\n    psVar11 = pReader->pBlob;\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    pppppcVar17 = (char *****)ppOffsetList;\n    pppppcVar20 = (char *****)pnOffsetList;\n    do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );\n  }\n  _bEof = (char ****)((uint)_bEof & 0xffffff);\n  if (ppOffsetList != (char **)0x0) {\n    *ppOffsetList = (char *)pbVar3;\n    *pnOffsetList = pReader->nOffsetList + -1;\n  }\n  puStack_58 = &bEof;\n  pppppcVar17 = (char *****)pReader->nDoclist;\n  psStack_60 = &pReader->iDocid;\n  ppppcVar14 = (char ****)pReader->aDoclist;\n  piStack_5c = &pReader->nOffsetList;\n  pppppcVar20 = (char *****)&p;\n  p = (char *)pbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (bEof == '\0') {\n    iVar22 = 0;\n    pReader->pOffsetList = p;\n  }\n  else {\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  pReader->pOffsetList = (char *)0x0;\n  iVar22 = 0;\n  p = (char *)ppppcVar14;\n  goto LAB_000b6244;\n  while (ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0) {\nLAB_000b637c:\n    ppppcVar14 = ppppcVar25;\n    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  pppppcVar17 = (char *****)&DAT_0000000a;\n  p = (char *)ppppcVar14;\n  iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10);\n  if (iVar22 == 0) {\n    pcVar23 = p;\n    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);\n    pReader->pOffsetList = pcVar23 + iVar9;\n    ppppcVar14 = _bEof;\n    if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }\n  }\n  else {\n    iVar22 = 0;\n  }\nLAB_000b6244:\n  if (iStack_2c == *(int *)puVar1) {\n    return iVar22;\n  }\n  pcVar31 = sqlite3Fts3MsrIncrNext;\n  iVar9 = iStack_2c;\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar2 = psStack_60;\n  piVar10 = *(int **)(puVar30 + 0xa55d8);\n  puStack_88 = puVar1;\n  pFStack_9c = (Fts3Table *)*piVar10;\n  ppppcVar25 = (char ****)ppppcVar14[2];\n  if (*(char *)(iVar9 + 0xeb) == '\0') {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }\n  ppppcVar15 = ppppcVar14;\n  pppppcVar18 = pppppcVar17;\n  pppppcVar21 = pppppcVar20;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppcStack_8c = unaff_s3;\n  ppcStack_84 = ppOffsetList;\n  pFStack_80 = pTab;\n  piStack_7c = pnOffsetList;\n  pFStack_78 = pReader;\n  pcStack_74 = pcVar31;\n  if (ppppcVar25 != (char ****)0x0) {\n    pppcVar5 = *ppppcVar14;\n    ppppcVar15 = (char ****)*pppcVar5;\n    if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppcVar20 = (char ****)0x0;\n  iVar7 = 0;\nLAB_000b65d4:\n  if (pFStack_9c == (Fts3Table *)*piVar10) {\n    return iVar7;\n  }\n  pcVar31 = *(code **)(puVar30 + 0xa55bc);\n  p_00 = pFStack_9c;\n  (*pcVar31)();\n  if ((char *****)ppppcVar15[0xb] == pppppcVar18) {\n    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);\n    pppppcVar21[4] = (char ****)ppppcVar15[7];\n    pppppcVar21[5] = (char ****)ppppcVar15[8];\n    ppppcVar14 = (char ****)ppppcVar15[4];\n    pppppcVar21[3] = (char ****)ppppcVar15[5];\n    pppppcVar21[2] = ppppcVar14;\n    return 0;\n  }\n  if ((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0) {\n    *pppppcVar21 = (char ****)0x1;\n    return 0;\n  }\n  iVar9 = sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5));\n  if (pppppcVar21[4] == (char ****)0x0) {\n    puVar30[0xad15c] = 1;\n    return iVar9;\n  }\n  return iVar9;\n}\n\n" comment (function_definition "int fts3SegReaderNextDocid\n              (Fts3Table *pTab,Fts3SegReader *pReader,char **ppOffsetList,int *pnOffsetList)\n\n{\n  undefined *puVar1;\n  sqlite3_int64 *psVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char ***pppcVar5;\n  int iVar6;\n  int iVar7;\n  char ****ppppcVar8;\n  int iVar9;\n  int *piVar10;\n  sqlite3_blob *psVar11;\n  uint uVar12;\n  char ***pppcVar13;\n  Fts3Table *p_00;\n  char ****ppppcVar14;\n  char ****ppppcVar15;\n  char ****ppppcVar16;\n  char *****pppppcVar17;\n  char *****pppppcVar18;\n  char *****pppppcVar19;\n  char *****pppppcVar20;\n  char *****pppppcVar21;\n  int iVar22;\n  char *pcVar23;\n  undefined4 unaff_s0;\n  byte bVar24;\n  undefined *unaff_s1;\n  char ****ppppcVar25;\n  undefined4 unaff_s2;\n  char ****ppppcVar26;\n  char ****unaff_s3;\n  int iVar27;\n  char ****ppppcVar28;\n  char ****ppppcVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  char *****pppppcStack_cc;\n  char ****ppppcStack_a4;\n  char *****pppppcStack_a0;\n  Fts3Table *pFStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  char ****ppppcStack_8c;\n  undefined *puStack_88;\n  char **ppcStack_84;\n  Fts3Table *pFStack_80;\n  int *piStack_7c;\n  Fts3SegReader *pFStack_78;\n  code *pcStack_74;\n  sqlite3_int64 *psStack_60;\n  int *piStack_5c;\n  u8 *puStack_58;\n  char *p;\n  u8 bEof;\n  int iStack_34;\n  int iStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  pbVar3 = (byte *)pReader->pOffsetList;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)) {\n    bVar24 = 0;\n    iVar9 = pReader->nDoclist;\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = (char ****)pReader->aDoclist;\n    psVar11 = pReader->pBlob;\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    pppppcVar17 = (char *****)ppOffsetList;\n    pppppcVar20 = (char *****)pnOffsetList;\n    do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );\n  }\n  _bEof = (char ****)((uint)_bEof & 0xffffff);\n  if (ppOffsetList != (char **)0x0) {\n    *ppOffsetList = (char *)pbVar3;\n    *pnOffsetList = pReader->nOffsetList + -1;\n  }\n  puStack_58 = &bEof;\n  pppppcVar17 = (char *****)pReader->nDoclist;\n  psStack_60 = &pReader->iDocid;\n  ppppcVar14 = (char ****)pReader->aDoclist;\n  piStack_5c = &pReader->nOffsetList;\n  pppppcVar20 = (char *****)&p;\n  p = (char *)pbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (bEof == '\0') {\n    iVar22 = 0;\n    pReader->pOffsetList = p;\n  }\n  else {\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  pReader->pOffsetList = (char *)0x0;\n  iVar22 = 0;\n  p = (char *)ppppcVar14;\n  goto LAB_000b6244;\n  while (ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0) {\nLAB_000b637c:\n    ppppcVar14 = ppppcVar25;\n    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  pppppcVar17 = (char *****)&DAT_0000000a;\n  p = (char *)ppppcVar14;\n  iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10);\n  if (iVar22 == 0) {\n    pcVar23 = p;\n    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);\n    pReader->pOffsetList = pcVar23 + iVar9;\n    ppppcVar14 = _bEof;\n    if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }\n  }\n  else {\n    iVar22 = 0;\n  }\nLAB_000b6244:\n  if (iStack_2c == *(int *)puVar1) {\n    return iVar22;\n  }\n  pcVar31 = sqlite3Fts3MsrIncrNext;\n  iVar9 = iStack_2c;\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar2 = psStack_60;\n  piVar10 = *(int **)(puVar30 + 0xa55d8);\n  puStack_88 = puVar1;\n  pFStack_9c = (Fts3Table *)*piVar10;\n  ppppcVar25 = (char ****)ppppcVar14[2];\n  if (*(char *)(iVar9 + 0xeb) == '\0') {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }\n  ppppcVar15 = ppppcVar14;\n  pppppcVar18 = pppppcVar17;\n  pppppcVar21 = pppppcVar20;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppcStack_8c = unaff_s3;\n  ppcStack_84 = ppOffsetList;\n  pFStack_80 = pTab;\n  piStack_7c = pnOffsetList;\n  pFStack_78 = pReader;\n  pcStack_74 = pcVar31;\n  if (ppppcVar25 != (char ****)0x0) {\n    pppcVar5 = *ppppcVar14;\n    ppppcVar15 = (char ****)*pppcVar5;\n    if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppcVar20 = (char ****)0x0;\n  iVar7 = 0;\nLAB_000b65d4:\n  if (pFStack_9c == (Fts3Table *)*piVar10) {\n    return iVar7;\n  }\n  pcVar31 = *(code **)(puVar30 + 0xa55bc);\n  p_00 = pFStack_9c;\n  (*pcVar31)();\n  if ((char *****)ppppcVar15[0xb] == pppppcVar18) {\n    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);\n    pppppcVar21[4] = (char ****)ppppcVar15[7];\n    pppppcVar21[5] = (char ****)ppppcVar15[8];\n    ppppcVar14 = (char ****)ppppcVar15[4];\n    pppppcVar21[3] = (char ****)ppppcVar15[5];\n    pppppcVar21[2] = ppppcVar14;\n    return 0;\n  }\n  if ((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0) {\n    *pppppcVar21 = (char ****)0x1;\n    return 0;\n  }\n  iVar9 = sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5));\n  if (pppppcVar21[4] == (char ****)0x0) {\n    puVar30[0xad15c] = 1;\n    return iVar9;\n  }\n  return iVar9;\n}" primitive_type (function_declarator "fts3SegReaderNextDocid\n              (Fts3Table *pTab,Fts3SegReader *pReader,char **ppOffsetList,int *pnOffsetList)" identifier (parameter_list "(Fts3Table *pTab,Fts3SegReader *pReader,char **ppOffsetList,int *pnOffsetList)" ( (parameter_declaration "Fts3Table *pTab" type_identifier (pointer_declarator "*pTab" * identifier)) , (parameter_declaration "Fts3SegReader *pReader" type_identifier (pointer_declarator "*pReader" * identifier)) , (parameter_declaration "char **ppOffsetList" primitive_type (pointer_declarator "**ppOffsetList" * (pointer_declarator "*ppOffsetList" * identifier))) , (parameter_declaration "int *pnOffsetList" primitive_type (pointer_declarator "*pnOffsetList" * identifier)) ))) (compound_statement "{\n  undefined *puVar1;\n  sqlite3_int64 *psVar2;\n  byte *pbVar3;\n  uint uVar4;\n  char ***pppcVar5;\n  int iVar6;\n  int iVar7;\n  char ****ppppcVar8;\n  int iVar9;\n  int *piVar10;\n  sqlite3_blob *psVar11;\n  uint uVar12;\n  char ***pppcVar13;\n  Fts3Table *p_00;\n  char ****ppppcVar14;\n  char ****ppppcVar15;\n  char ****ppppcVar16;\n  char *****pppppcVar17;\n  char *****pppppcVar18;\n  char *****pppppcVar19;\n  char *****pppppcVar20;\n  char *****pppppcVar21;\n  int iVar22;\n  char *pcVar23;\n  undefined4 unaff_s0;\n  byte bVar24;\n  undefined *unaff_s1;\n  char ****ppppcVar25;\n  undefined4 unaff_s2;\n  char ****ppppcVar26;\n  char ****unaff_s3;\n  int iVar27;\n  char ****ppppcVar28;\n  char ****ppppcVar29;\n  undefined *puVar30;\n  code *pcVar31;\n  char *****pppppcStack_cc;\n  char ****ppppcStack_a4;\n  char *****pppppcStack_a0;\n  Fts3Table *pFStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  char ****ppppcStack_8c;\n  undefined *puStack_88;\n  char **ppcStack_84;\n  Fts3Table *pFStack_80;\n  int *piStack_7c;\n  Fts3SegReader *pFStack_78;\n  code *pcStack_74;\n  sqlite3_int64 *psStack_60;\n  int *piStack_5c;\n  u8 *puStack_58;\n  char *p;\n  u8 bEof;\n  int iStack_34;\n  int iStack_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  pbVar3 = (byte *)pReader->pOffsetList;\n  iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)) {\n    bVar24 = 0;\n    iVar9 = pReader->nDoclist;\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = (char ****)pReader->aDoclist;\n    psVar11 = pReader->pBlob;\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    pppppcVar17 = (char *****)ppOffsetList;\n    pppppcVar20 = (char *****)pnOffsetList;\n    do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );\n  }\n  _bEof = (char ****)((uint)_bEof & 0xffffff);\n  if (ppOffsetList != (char **)0x0) {\n    *ppOffsetList = (char *)pbVar3;\n    *pnOffsetList = pReader->nOffsetList + -1;\n  }\n  puStack_58 = &bEof;\n  pppppcVar17 = (char *****)pReader->nDoclist;\n  psStack_60 = &pReader->iDocid;\n  ppppcVar14 = (char ****)pReader->aDoclist;\n  piStack_5c = &pReader->nOffsetList;\n  pppppcVar20 = (char *****)&p;\n  p = (char *)pbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (bEof == '\0') {\n    iVar22 = 0;\n    pReader->pOffsetList = p;\n  }\n  else {\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  pReader->pOffsetList = (char *)0x0;\n  iVar22 = 0;\n  p = (char *)ppppcVar14;\n  goto LAB_000b6244;\n  while (ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0) {\nLAB_000b637c:\n    ppppcVar14 = ppppcVar25;\n    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  pppppcVar17 = (char *****)&DAT_0000000a;\n  p = (char *)ppppcVar14;\n  iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10);\n  if (iVar22 == 0) {\n    pcVar23 = p;\n    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);\n    pReader->pOffsetList = pcVar23 + iVar9;\n    ppppcVar14 = _bEof;\n    if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }\n  }\n  else {\n    iVar22 = 0;\n  }\nLAB_000b6244:\n  if (iStack_2c == *(int *)puVar1) {\n    return iVar22;\n  }\n  pcVar31 = sqlite3Fts3MsrIncrNext;\n  iVar9 = iStack_2c;\n  puVar30 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  psVar2 = psStack_60;\n  piVar10 = *(int **)(puVar30 + 0xa55d8);\n  puStack_88 = puVar1;\n  pFStack_9c = (Fts3Table *)*piVar10;\n  ppppcVar25 = (char ****)ppppcVar14[2];\n  if (*(char *)(iVar9 + 0xeb) == '\0') {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }\n  ppppcVar15 = ppppcVar14;\n  pppppcVar18 = pppppcVar17;\n  pppppcVar21 = pppppcVar20;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppcStack_8c = unaff_s3;\n  ppcStack_84 = ppOffsetList;\n  pFStack_80 = pTab;\n  piStack_7c = pnOffsetList;\n  pFStack_78 = pReader;\n  pcStack_74 = pcVar31;\n  if (ppppcVar25 != (char ****)0x0) {\n    pppcVar5 = *ppppcVar14;\n    ppppcVar15 = (char ****)*pppcVar5;\n    if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppcVar20 = (char ****)0x0;\n  iVar7 = 0;\nLAB_000b65d4:\n  if (pFStack_9c == (Fts3Table *)*piVar10) {\n    return iVar7;\n  }\n  pcVar31 = *(code **)(puVar30 + 0xa55bc);\n  p_00 = pFStack_9c;\n  (*pcVar31)();\n  if ((char *****)ppppcVar15[0xb] == pppppcVar18) {\n    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);\n    pppppcVar21[4] = (char ****)ppppcVar15[7];\n    pppppcVar21[5] = (char ****)ppppcVar15[8];\n    ppppcVar14 = (char ****)ppppcVar15[4];\n    pppppcVar21[3] = (char ****)ppppcVar15[5];\n    pppppcVar21[2] = ppppcVar14;\n    return 0;\n  }\n  if ((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0) {\n    *pppppcVar21 = (char ****)0x1;\n    return 0;\n  }\n  iVar9 = sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5));\n  if (pppppcVar21[4] == (char ****)0x0) {\n    puVar30[0xad15c] = 1;\n    return iVar9;\n  }\n  return iVar9;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "sqlite3_int64 *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char ***pppcVar5;" primitive_type (pointer_declarator "***pppcVar5" * (pointer_declarator "**pppcVar5" * (pointer_declarator "*pppcVar5" * identifier))) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "char ****ppppcVar8;" primitive_type (pointer_declarator "****ppppcVar8" * (pointer_declarator "***ppppcVar8" * (pointer_declarator "**ppppcVar8" * (pointer_declarator "*ppppcVar8" * identifier)))) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "sqlite3_blob *psVar11;" type_identifier (pointer_declarator "*psVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char ***pppcVar13;" primitive_type (pointer_declarator "***pppcVar13" * (pointer_declarator "**pppcVar13" * (pointer_declarator "*pppcVar13" * identifier))) ;) (declaration "Fts3Table *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "char ****ppppcVar14;" primitive_type (pointer_declarator "****ppppcVar14" * (pointer_declarator "***ppppcVar14" * (pointer_declarator "**ppppcVar14" * (pointer_declarator "*ppppcVar14" * identifier)))) ;) (declaration "char ****ppppcVar15;" primitive_type (pointer_declarator "****ppppcVar15" * (pointer_declarator "***ppppcVar15" * (pointer_declarator "**ppppcVar15" * (pointer_declarator "*ppppcVar15" * identifier)))) ;) (declaration "char ****ppppcVar16;" primitive_type (pointer_declarator "****ppppcVar16" * (pointer_declarator "***ppppcVar16" * (pointer_declarator "**ppppcVar16" * (pointer_declarator "*ppppcVar16" * identifier)))) ;) (declaration "char *****pppppcVar17;" primitive_type (pointer_declarator "*****pppppcVar17" * (pointer_declarator "****pppppcVar17" * (pointer_declarator "***pppppcVar17" * (pointer_declarator "**pppppcVar17" * (pointer_declarator "*pppppcVar17" * identifier))))) ;) (declaration "char *****pppppcVar18;" primitive_type (pointer_declarator "*****pppppcVar18" * (pointer_declarator "****pppppcVar18" * (pointer_declarator "***pppppcVar18" * (pointer_declarator "**pppppcVar18" * (pointer_declarator "*pppppcVar18" * identifier))))) ;) (declaration "char *****pppppcVar19;" primitive_type (pointer_declarator "*****pppppcVar19" * (pointer_declarator "****pppppcVar19" * (pointer_declarator "***pppppcVar19" * (pointer_declarator "**pppppcVar19" * (pointer_declarator "*pppppcVar19" * identifier))))) ;) (declaration "char *****pppppcVar20;" primitive_type (pointer_declarator "*****pppppcVar20" * (pointer_declarator "****pppppcVar20" * (pointer_declarator "***pppppcVar20" * (pointer_declarator "**pppppcVar20" * (pointer_declarator "*pppppcVar20" * identifier))))) ;) (declaration "char *****pppppcVar21;" primitive_type (pointer_declarator "*****pppppcVar21" * (pointer_declarator "****pppppcVar21" * (pointer_declarator "***pppppcVar21" * (pointer_declarator "**pppppcVar21" * (pointer_declarator "*pppppcVar21" * identifier))))) ;) (declaration "int iVar22;" primitive_type identifier ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "byte bVar24;" type_identifier identifier ;) (declaration "undefined *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "char ****ppppcVar25;" primitive_type (pointer_declarator "****ppppcVar25" * (pointer_declarator "***ppppcVar25" * (pointer_declarator "**ppppcVar25" * (pointer_declarator "*ppppcVar25" * identifier)))) ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "char ****ppppcVar26;" primitive_type (pointer_declarator "****ppppcVar26" * (pointer_declarator "***ppppcVar26" * (pointer_declarator "**ppppcVar26" * (pointer_declarator "*ppppcVar26" * identifier)))) ;) (declaration "char ****unaff_s3;" primitive_type (pointer_declarator "****unaff_s3" * (pointer_declarator "***unaff_s3" * (pointer_declarator "**unaff_s3" * (pointer_declarator "*unaff_s3" * identifier)))) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "char ****ppppcVar28;" primitive_type (pointer_declarator "****ppppcVar28" * (pointer_declarator "***ppppcVar28" * (pointer_declarator "**ppppcVar28" * (pointer_declarator "*ppppcVar28" * identifier)))) ;) (declaration "char ****ppppcVar29;" primitive_type (pointer_declarator "****ppppcVar29" * (pointer_declarator "***ppppcVar29" * (pointer_declarator "**ppppcVar29" * (pointer_declarator "*ppppcVar29" * identifier)))) ;) (declaration "undefined *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "code *pcVar31;" type_identifier (pointer_declarator "*pcVar31" * identifier) ;) (declaration "char *****pppppcStack_cc;" primitive_type (pointer_declarator "*****pppppcStack_cc" * (pointer_declarator "****pppppcStack_cc" * (pointer_declarator "***pppppcStack_cc" * (pointer_declarator "**pppppcStack_cc" * (pointer_declarator "*pppppcStack_cc" * identifier))))) ;) (declaration "char ****ppppcStack_a4;" primitive_type (pointer_declarator "****ppppcStack_a4" * (pointer_declarator "***ppppcStack_a4" * (pointer_declarator "**ppppcStack_a4" * (pointer_declarator "*ppppcStack_a4" * identifier)))) ;) (declaration "char *****pppppcStack_a0;" primitive_type (pointer_declarator "*****pppppcStack_a0" * (pointer_declarator "****pppppcStack_a0" * (pointer_declarator "***pppppcStack_a0" * (pointer_declarator "**pppppcStack_a0" * (pointer_declarator "*pppppcStack_a0" * identifier))))) ;) (declaration "Fts3Table *pFStack_9c;" type_identifier (pointer_declarator "*pFStack_9c" * identifier) ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "char ****ppppcStack_8c;" primitive_type (pointer_declarator "****ppppcStack_8c" * (pointer_declarator "***ppppcStack_8c" * (pointer_declarator "**ppppcStack_8c" * (pointer_declarator "*ppppcStack_8c" * identifier)))) ;) (declaration "undefined *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "char **ppcStack_84;" primitive_type (pointer_declarator "**ppcStack_84" * (pointer_declarator "*ppcStack_84" * identifier)) ;) (declaration "Fts3Table *pFStack_80;" type_identifier (pointer_declarator "*pFStack_80" * identifier) ;) (declaration "int *piStack_7c;" primitive_type (pointer_declarator "*piStack_7c" * identifier) ;) (declaration "Fts3SegReader *pFStack_78;" type_identifier (pointer_declarator "*pFStack_78" * identifier) ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "sqlite3_int64 *psStack_60;" type_identifier (pointer_declarator "*psStack_60" * identifier) ;) (declaration "int *piStack_5c;" primitive_type (pointer_declarator "*piStack_5c" * identifier) ;) (declaration "u8 *puStack_58;" type_identifier (pointer_declarator "*puStack_58" * identifier) ;) (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "u8 bEof;" type_identifier identifier ;) (declaration "int iStack_34;" primitive_type identifier ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "pbVar3 = (byte *)pReader->pOffsetList;" (assignment_expression "pbVar3 = (byte *)pReader->pOffsetList" identifier = (cast_expression "(byte *)pReader->pOffsetList" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pReader->pOffsetList" identifier -> field_identifier))) ;) (expression_statement "iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "iStack_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)) {\n    bVar24 = 0;\n    iVar9 = pReader->nDoclist;\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = (char ****)pReader->aDoclist;\n    psVar11 = pReader->pBlob;\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    pppppcVar17 = (char *****)ppOffsetList;\n    pppppcVar20 = (char *****)pnOffsetList;\n    do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );\n  }" if (parenthesized_expression "((*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0))" ( (binary_expression "(*(char *)&(pTab->base).pModule == '\0') || (pReader->ppNextElem == (Fts3HashElem **)0x0)" (parenthesized_expression "(*(char *)&(pTab->base).pModule == '\0')" ( (binary_expression "*(char *)&(pTab->base).pModule == '\0'" (pointer_expression "*(char *)&(pTab->base).pModule" * (cast_expression "(char *)&(pTab->base).pModule" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pTab->base).pModule" & (field_expression "(pTab->base).pModule" (parenthesized_expression "(pTab->base)" ( (field_expression "pTab->base" identifier -> field_identifier) )) . field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(pReader->ppNextElem == (Fts3HashElem **)0x0)" ( (binary_expression "pReader->ppNextElem == (Fts3HashElem **)0x0" (field_expression "pReader->ppNextElem" identifier -> field_identifier) == (cast_expression "(Fts3HashElem **)0x0" ( (type_descriptor "Fts3HashElem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n    bVar24 = 0;\n    iVar9 = pReader->nDoclist;\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = (char ****)pReader->aDoclist;\n    psVar11 = pReader->pBlob;\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    pppppcVar17 = (char *****)ppOffsetList;\n    pppppcVar20 = (char *****)pnOffsetList;\n    do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );\n  }" { (expression_statement "bVar24 = 0;" (assignment_expression "bVar24 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = pReader->nDoclist;" (assignment_expression "iVar9 = pReader->nDoclist" identifier = (field_expression "pReader->nDoclist" identifier -> field_identifier)) ;) (expression_statement "unaff_s2 = 0xffffff80;" (assignment_expression "unaff_s2 = 0xffffff80" identifier = number_literal) ;) (expression_statement "unaff_s3 = (char ****)pReader->aDoclist;" (assignment_expression "unaff_s3 = (char ****)pReader->aDoclist" identifier = (cast_expression "(char ****)pReader->aDoclist" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (field_expression "pReader->aDoclist" identifier -> field_identifier))) ;) (expression_statement "psVar11 = pReader->pBlob;" (assignment_expression "psVar11 = pReader->pBlob" identifier = (field_expression "pReader->pBlob" identifier -> field_identifier)) ;) (expression_statement "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;" (assignment_expression "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4" identifier = (binary_expression "PTR_LAB_0015b6f8 + 0x5eb4" identifier + number_literal)) ;) (expression_statement "pppppcVar17 = (char *****)ppOffsetList;" (assignment_expression "pppppcVar17 = (char *****)ppOffsetList" identifier = (cast_expression "(char *****)ppOffsetList" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (expression_statement "pppppcVar20 = (char *****)pnOffsetList;" (assignment_expression "pppppcVar20 = (char *****)pnOffsetList" identifier = (cast_expression "(char *****)pnOffsetList" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) identifier)) ;) (do_statement "do {\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    } while( true );" do (compound_statement "{\n      bVar24 = bVar24 | *pbVar3;\n      p = (char *)pbVar3;\n      while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }\n      pbVar3 = (byte *)p + 1;\n      bVar24 = *p & 0x80;\n    }" { (expression_statement "bVar24 = bVar24 | *pbVar3;" (assignment_expression "bVar24 = bVar24 | *pbVar3" identifier = (binary_expression "bVar24 | *pbVar3" identifier | (pointer_expression "*pbVar3" * identifier))) ;) (expression_statement "p = (char *)pbVar3;" (assignment_expression "p = (char *)pbVar3" identifier = (cast_expression "(char *)pbVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (while_statement "while (bVar24 == 0) {\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }" while (parenthesized_expression "(bVar24 == 0)" ( (binary_expression "bVar24 == 0" identifier == number_literal) )) (compound_statement "{\n        ppppcVar14 = (char ****)((byte *)p + 1);\n        unaff_s0 = 0;\n        if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar22 = fts3SegReaderIncrRead(pReader);\n        if (iVar22 != 0) goto LAB_000b6244;\n        psVar11 = pReader->pBlob;\n        bVar24 = *p;\n      }" { (expression_statement "ppppcVar14 = (char ****)((byte *)p + 1);" (assignment_expression "ppppcVar14 = (char ****)((byte *)p + 1)" identifier = (cast_expression "(char ****)((byte *)p + 1)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *)p + 1)" ( (binary_expression "(byte *)p + 1" (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (if_statement "if ((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)) {\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" if (parenthesized_expression "((psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate))" ( (binary_expression "(psVar11 == (sqlite3_blob *)0x0) || (p < pReader->aNode + pReader->nPopulate)" (parenthesized_expression "(psVar11 == (sqlite3_blob *)0x0)" ( (binary_expression "psVar11 == (sqlite3_blob *)0x0" identifier == (cast_expression "(sqlite3_blob *)0x0" ( (type_descriptor "sqlite3_blob *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(p < pReader->aNode + pReader->nPopulate)" ( (binary_expression "p < pReader->aNode + pReader->nPopulate" identifier < (binary_expression "pReader->aNode + pReader->nPopulate" (field_expression "pReader->aNode" identifier -> field_identifier) + (field_expression "pReader->nPopulate" identifier -> field_identifier))) ))) )) (compound_statement "{\n          if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }\n          unaff_s3 = (char ****)((int)unaff_s3 + iVar9);\n          if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;\n          ppppcVar25 = (char ****)((byte *)p + 2);\n          if (((byte *)p)[1] != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" { (if_statement "if (ppOffsetList != (char **)0x0) {\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }" if (parenthesized_expression "(ppOffsetList != (char **)0x0)" ( (binary_expression "ppOffsetList != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            *ppOffsetList = pReader->pOffsetList;\n            *pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));\n          }" { (expression_statement "*ppOffsetList = pReader->pOffsetList;" (assignment_expression "*ppOffsetList = pReader->pOffsetList" (pointer_expression "*ppOffsetList" * identifier) = (field_expression "pReader->pOffsetList" identifier -> field_identifier)) ;) (expression_statement "*pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList));" (assignment_expression "*pnOffsetList = (int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList))" (pointer_expression "*pnOffsetList" * identifier) = (cast_expression "(int)((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)ppppcVar14 + (-1 - (int)pReader->pOffsetList))" ( (binary_expression "(int)ppppcVar14 + (-1 - (int)pReader->pOffsetList)" (cast_expression "(int)ppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - (int)pReader->pOffsetList)" ( (binary_expression "-1 - (int)pReader->pOffsetList" number_literal - (cast_expression "(int)pReader->pOffsetList" ( (type_descriptor "int" primitive_type) ) (field_expression "pReader->pOffsetList" identifier -> field_identifier))) ))) )))) ;) })) (expression_statement "unaff_s3 = (char ****)((int)unaff_s3 + iVar9);" (assignment_expression "unaff_s3 = (char ****)((int)unaff_s3 + iVar9)" identifier = (cast_expression "(char ****)((int)unaff_s3 + iVar9)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)unaff_s3 + iVar9)" ( (binary_expression "(int)unaff_s3 + iVar9" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (unaff_s3 <= ppppcVar14) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 <= ppppcVar14)" ( (binary_expression "unaff_s3 <= ppppcVar14" identifier <= identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) (expression_statement "ppppcVar25 = (char ****)((byte *)p + 2);" (assignment_expression "ppppcVar25 = (char ****)((byte *)p + 2)" identifier = (cast_expression "(char ****)((byte *)p + 2)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((byte *)p + 2)" ( (binary_expression "(byte *)p + 2" (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal) )))) ;) (if_statement "if (((byte *)p)[1] != 0) goto LAB_000b63a4;" if (parenthesized_expression "(((byte *)p)[1] != 0)" ( (binary_expression "((byte *)p)[1] != 0" (subscript_expression "((byte *)p)[1]" (parenthesized_expression "((byte *)p)" ( (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_000b63a4;" goto statement_identifier ;)) (goto_statement "goto LAB_000b637c;" goto statement_identifier ;) })) (expression_statement "iVar22 = fts3SegReaderIncrRead(pReader);" (assignment_expression "iVar22 = fts3SegReaderIncrRead(pReader)" identifier = (call_expression "fts3SegReaderIncrRead(pReader)" identifier (argument_list "(pReader)" ( identifier )))) ;) (if_statement "if (iVar22 != 0) goto LAB_000b6244;" if (parenthesized_expression "(iVar22 != 0)" ( (binary_expression "iVar22 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;)) (expression_statement "psVar11 = pReader->pBlob;" (assignment_expression "psVar11 = pReader->pBlob" identifier = (field_expression "pReader->pBlob" identifier -> field_identifier)) ;) (expression_statement "bVar24 = *p;" (assignment_expression "bVar24 = *p" identifier = (pointer_expression "*p" * identifier)) ;) })) (expression_statement "pbVar3 = (byte *)p + 1;" (assignment_expression "pbVar3 = (byte *)p + 1" identifier = (binary_expression "(byte *)p + 1" (cast_expression "(byte *)p" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) + number_literal)) ;) (expression_statement "bVar24 = *p & 0x80;" (assignment_expression "bVar24 = *p & 0x80" identifier = (binary_expression "*p & 0x80" (pointer_expression "*p" * identifier) & number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "_bEof = (char ****)((uint)_bEof & 0xffffff);" (assignment_expression "_bEof = (char ****)((uint)_bEof & 0xffffff)" identifier = (cast_expression "(char ****)((uint)_bEof & 0xffffff)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((uint)_bEof & 0xffffff)" ( (binary_expression "(uint)_bEof & 0xffffff" (cast_expression "(uint)_bEof" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (ppOffsetList != (char **)0x0) {\n    *ppOffsetList = (char *)pbVar3;\n    *pnOffsetList = pReader->nOffsetList + -1;\n  }" if (parenthesized_expression "(ppOffsetList != (char **)0x0)" ( (binary_expression "ppOffsetList != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *ppOffsetList = (char *)pbVar3;\n    *pnOffsetList = pReader->nOffsetList + -1;\n  }" { (expression_statement "*ppOffsetList = (char *)pbVar3;" (assignment_expression "*ppOffsetList = (char *)pbVar3" (pointer_expression "*ppOffsetList" * identifier) = (cast_expression "(char *)pbVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "*pnOffsetList = pReader->nOffsetList + -1;" (assignment_expression "*pnOffsetList = pReader->nOffsetList + -1" (pointer_expression "*pnOffsetList" * identifier) = (binary_expression "pReader->nOffsetList + -1" (field_expression "pReader->nOffsetList" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "puStack_58 = &bEof;" (assignment_expression "puStack_58 = &bEof" identifier = (pointer_expression "&bEof" & identifier)) ;) (expression_statement "pppppcVar17 = (char *****)pReader->nDoclist;" (assignment_expression "pppppcVar17 = (char *****)pReader->nDoclist" identifier = (cast_expression "(char *****)pReader->nDoclist" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (field_expression "pReader->nDoclist" identifier -> field_identifier))) ;) (expression_statement "psStack_60 = &pReader->iDocid;" (assignment_expression "psStack_60 = &pReader->iDocid" identifier = (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier))) ;) (expression_statement "ppppcVar14 = (char ****)pReader->aDoclist;" (assignment_expression "ppppcVar14 = (char ****)pReader->aDoclist" identifier = (cast_expression "(char ****)pReader->aDoclist" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (field_expression "pReader->aDoclist" identifier -> field_identifier))) ;) (expression_statement "piStack_5c = &pReader->nOffsetList;" (assignment_expression "piStack_5c = &pReader->nOffsetList" identifier = (pointer_expression "&pReader->nOffsetList" & (field_expression "pReader->nOffsetList" identifier -> field_identifier))) ;) (expression_statement "pppppcVar20 = (char *****)&p;" (assignment_expression "pppppcVar20 = (char *****)&p" identifier = (cast_expression "(char *****)&p" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "&p" & identifier))) ;) (expression_statement "p = (char *)pbVar3;" (assignment_expression "p = (char *)pbVar3" identifier = (cast_expression "(char *)pbVar3" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x3268)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x3268)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x3268)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x3268" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (bEof == '\0') {\n    iVar22 = 0;\n    pReader->pOffsetList = p;\n  }\n  else {\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }" if (parenthesized_expression "(bEof == '\0')" ( (binary_expression "bEof == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar22 = 0;\n    pReader->pOffsetList = p;\n  }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pReader->pOffsetList = p;" (assignment_expression "pReader->pOffsetList = p" (field_expression "pReader->pOffsetList" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }" else (compound_statement "{\n    iVar22 = 0;\n    pReader->pOffsetList = (char *)0x0;\n  }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "pReader->pOffsetList = (char *)0x0;" (assignment_expression "pReader->pOffsetList = (char *)0x0" (field_expression "pReader->pOffsetList" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (labeled_statement "LAB_000b6384:\n  pReader->pOffsetList = (char *)0x0;" statement_identifier : (expression_statement "pReader->pOffsetList = (char *)0x0;" (assignment_expression "pReader->pOffsetList = (char *)0x0" (field_expression "pReader->pOffsetList" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) (expression_statement "p = (char *)ppppcVar14;" (assignment_expression "p = (char *)ppppcVar14" identifier = (cast_expression "(char *)ppppcVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (while_statement "while (ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0) {\nLAB_000b637c:\n    ppppcVar14 = ppppcVar25;\n    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;\n  }" while (parenthesized_expression "(ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0)" ( (comma_expression "ppppcVar25 = (char ****)((int)ppppcVar14 + 1), *(byte *)ppppcVar14 == 0" (assignment_expression "ppppcVar25 = (char ****)((int)ppppcVar14 + 1)" identifier = (cast_expression "(char ****)((int)ppppcVar14 + 1)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppcVar14 + 1)" ( (binary_expression "(int)ppppcVar14 + 1" (cast_expression "(int)ppppcVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "*(byte *)ppppcVar14 == 0" (pointer_expression "*(byte *)ppppcVar14" * (cast_expression "(byte *)ppppcVar14" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal)) )) (compound_statement "{\nLAB_000b637c:\n    ppppcVar14 = ppppcVar25;\n    if (unaff_s3 == ppppcVar14) goto LAB_000b6384;\n  }" { (labeled_statement "LAB_000b637c:\n    ppppcVar14 = ppppcVar25;" statement_identifier : (expression_statement "ppppcVar14 = ppppcVar25;" (assignment_expression "ppppcVar14 = ppppcVar25" identifier = identifier) ;)) (if_statement "if (unaff_s3 == ppppcVar14) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 == ppppcVar14)" ( (binary_expression "unaff_s3 == ppppcVar14" identifier == identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) })) (labeled_statement "LAB_000b63a4:\n  pppppcVar17 = (char *****)&DAT_0000000a;" statement_identifier : (expression_statement "pppppcVar17 = (char *****)&DAT_0000000a;" (assignment_expression "pppppcVar17 = (char *****)&DAT_0000000a" identifier = (cast_expression "(char *****)&DAT_0000000a" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "p = (char *)ppppcVar14;" (assignment_expression "p = (char *)ppppcVar14" identifier = (cast_expression "(char *)ppppcVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10);" (assignment_expression "iVar22 = fts3SegReaderRequire(pReader,(char *)ppppcVar14,10)" identifier = (call_expression "fts3SegReaderRequire(pReader,(char *)ppppcVar14,10)" identifier (argument_list "(pReader,(char *)ppppcVar14,10)" ( identifier , (cast_expression "(char *)ppppcVar14" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (iVar22 == 0) {\n    pcVar23 = p;\n    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);\n    pReader->pOffsetList = pcVar23 + iVar9;\n    ppppcVar14 = _bEof;\n    if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }\n  }\n  else {\n    iVar22 = 0;\n  }" if (parenthesized_expression "(iVar22 == 0)" ( (binary_expression "iVar22 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar23 = p;\n    iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);\n    pReader->pOffsetList = pcVar23 + iVar9;\n    ppppcVar14 = _bEof;\n    if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }\n  }" { (expression_statement "pcVar23 = p;" (assignment_expression "pcVar23 = p" identifier = identifier) ;) (expression_statement "iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof);" (assignment_expression "iVar9 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))(p,&bEof)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))" ( (pointer_expression "*(code *)(PTR_LAB_0015b65c + 0xf74)" * (cast_expression "(code *)(PTR_LAB_0015b65c + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b65c + 0xf74)" ( (binary_expression "PTR_LAB_0015b65c + 0xf74" identifier + number_literal) )))) )) (argument_list "(p,&bEof)" ( identifier , (pointer_expression "&bEof" & identifier) )))) ;) (expression_statement "pReader->pOffsetList = pcVar23 + iVar9;" (assignment_expression "pReader->pOffsetList = pcVar23 + iVar9" (field_expression "pReader->pOffsetList" identifier -> field_identifier) = (binary_expression "pcVar23 + iVar9" identifier + identifier)) ;) (expression_statement "ppppcVar14 = _bEof;" (assignment_expression "ppppcVar14 = _bEof" identifier = identifier) ;) (if_statement "if (*(char *)&(pTab->base).pModule == '\0') {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }\n    else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }" if (parenthesized_expression "(*(char *)&(pTab->base).pModule == '\0')" ( (binary_expression "*(char *)&(pTab->base).pModule == '\0'" (pointer_expression "*(char *)&(pTab->base).pModule" * (cast_expression "(char *)&(pTab->base).pModule" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pTab->base).pModule" & (field_expression "(pTab->base).pModule" (parenthesized_expression "(pTab->base)" ( (field_expression "pTab->base" identifier -> field_identifier) )) . field_identifier)))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 + iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);\n    }" { (expression_statement "uVar12 = (uint)pReader->iDocid;" (assignment_expression "uVar12 = (uint)pReader->iDocid" identifier = (cast_expression "(uint)pReader->iDocid" ( (type_descriptor "uint" type_identifier) ) (field_expression "pReader->iDocid" identifier -> field_identifier))) ;) (expression_statement "iVar9 = *(int *)&pReader->iDocid;" (assignment_expression "iVar9 = *(int *)&pReader->iDocid" identifier = (pointer_expression "*(int *)&pReader->iDocid" * (cast_expression "(int *)&pReader->iDocid" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier))))) ;) (expression_statement "uVar4 = uVar12 + iStack_34;" (assignment_expression "uVar4 = uVar12 + iStack_34" identifier = (binary_expression "uVar12 + iStack_34" identifier + identifier)) ;) (expression_statement "*(uint *)((int)&pReader->iDocid + 4) = uVar4;" (assignment_expression "*(uint *)((int)&pReader->iDocid + 4) = uVar4" (pointer_expression "*(uint *)((int)&pReader->iDocid + 4)" * (cast_expression "(uint *)((int)&pReader->iDocid + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pReader->iDocid + 4)" ( (binary_expression "(int)&pReader->iDocid + 4" (cast_expression "(int)&pReader->iDocid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9);" (assignment_expression "*(byte **)&pReader->iDocid = (byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9)" (pointer_expression "*(byte **)&pReader->iDocid" * (cast_expression "(byte **)&pReader->iDocid" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier)))) = (cast_expression "(byte *)((int)_bEof + (uint)(uVar4 < uVar12) + iVar9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)_bEof + (uint)(uVar4 < uVar12) + iVar9)" ( (binary_expression "(int)_bEof + (uint)(uVar4 < uVar12) + iVar9" (binary_expression "(int)_bEof + (uint)(uVar4 < uVar12)" (cast_expression "(int)_bEof" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar4 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar12)" ( (binary_expression "uVar4 < uVar12" identifier < identifier) )))) + identifier) )))) ;) }) (else_clause "else {\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }" else (compound_statement "{\n      uVar12 = (uint)pReader->iDocid;\n      iVar9 = *(int *)&pReader->iDocid;\n      uVar4 = uVar12 - iStack_34;\n      *(uint *)((int)&pReader->iDocid + 4) = uVar4;\n      *(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);\n    }" { (expression_statement "uVar12 = (uint)pReader->iDocid;" (assignment_expression "uVar12 = (uint)pReader->iDocid" identifier = (cast_expression "(uint)pReader->iDocid" ( (type_descriptor "uint" type_identifier) ) (field_expression "pReader->iDocid" identifier -> field_identifier))) ;) (expression_statement "iVar9 = *(int *)&pReader->iDocid;" (assignment_expression "iVar9 = *(int *)&pReader->iDocid" identifier = (pointer_expression "*(int *)&pReader->iDocid" * (cast_expression "(int *)&pReader->iDocid" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier))))) ;) (expression_statement "uVar4 = uVar12 - iStack_34;" (assignment_expression "uVar4 = uVar12 - iStack_34" identifier = (binary_expression "uVar12 - iStack_34" identifier - identifier)) ;) (expression_statement "*(uint *)((int)&pReader->iDocid + 4) = uVar4;" (assignment_expression "*(uint *)((int)&pReader->iDocid + 4) = uVar4" (pointer_expression "*(uint *)((int)&pReader->iDocid + 4)" * (cast_expression "(uint *)((int)&pReader->iDocid + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pReader->iDocid + 4)" ( (binary_expression "(int)&pReader->iDocid + 4" (cast_expression "(int)&pReader->iDocid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4);" (assignment_expression "*(uint *)&pReader->iDocid = (iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4)" (pointer_expression "*(uint *)&pReader->iDocid" * (cast_expression "(uint *)&pReader->iDocid" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pReader->iDocid" & (field_expression "pReader->iDocid" identifier -> field_identifier)))) = (binary_expression "(iVar9 - (int)_bEof) - (uint)(uVar12 < uVar4)" (parenthesized_expression "(iVar9 - (int)_bEof)" ( (binary_expression "iVar9 - (int)_bEof" identifier - (cast_expression "(int)_bEof" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(uVar12 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar12 < uVar4)" ( (binary_expression "uVar12 < uVar4" identifier < identifier) ))))) ;) }))) }) (else_clause "else {\n    iVar22 = 0;\n  }" else (compound_statement "{\n    iVar22 = 0;\n  }" { (expression_statement "iVar22 = 0;" (assignment_expression "iVar22 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000b6244:\n  if (iStack_2c == *(int *)puVar1) {\n    return iVar22;\n  }" statement_identifier : (if_statement "if (iStack_2c == *(int *)puVar1) {\n    return iVar22;\n  }" if (parenthesized_expression "(iStack_2c == *(int *)puVar1)" ( (binary_expression "iStack_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar22;\n  }" { (return_statement "return iVar22;" return identifier ;) }))) (expression_statement "pcVar31 = sqlite3Fts3MsrIncrNext;" (assignment_expression "pcVar31 = sqlite3Fts3MsrIncrNext" identifier = identifier) ;) (expression_statement "iVar9 = iStack_2c;" (assignment_expression "iVar9 = iStack_2c" identifier = identifier) ;) (expression_statement "puVar30 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar30 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "psVar2 = psStack_60;" (assignment_expression "psVar2 = psStack_60" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(puVar30 + 0xa55d8);" (assignment_expression "piVar10 = *(int **)(puVar30 + 0xa55d8)" identifier = (pointer_expression "*(int **)(puVar30 + 0xa55d8)" * (cast_expression "(int **)(puVar30 + 0xa55d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xa55d8)" ( (binary_expression "puVar30 + 0xa55d8" identifier + number_literal) ))))) ;) (expression_statement "puStack_88 = puVar1;" (assignment_expression "puStack_88 = puVar1" identifier = identifier) ;) (expression_statement "pFStack_9c = (Fts3Table *)*piVar10;" (assignment_expression "pFStack_9c = (Fts3Table *)*piVar10" identifier = (cast_expression "(Fts3Table *)*piVar10" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) ;) (expression_statement "ppppcVar25 = (char ****)ppppcVar14[2];" (assignment_expression "ppppcVar25 = (char ****)ppppcVar14[2]" identifier = (cast_expression "(char ****)ppppcVar14[2]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar14[2]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar9 + 0xeb) == '\0') {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }" if (parenthesized_expression "(*(char *)(iVar9 + 0xeb) == '\0')" ( (binary_expression "*(char *)(iVar9 + 0xeb) == '\0'" (pointer_expression "*(char *)(iVar9 + 0xeb)" * (cast_expression "(char *)(iVar9 + 0xeb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xeb)" ( (binary_expression "iVar9 + 0xeb" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);\n  }" { (expression_statement "pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0);" (assignment_expression "pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0)" identifier = (cast_expression "(char *****)(*(int *)(puVar30 + 0xa526c) + -0x26f0)" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar30 + 0xa526c) + -0x26f0)" ( (binary_expression "*(int *)(puVar30 + 0xa526c) + -0x26f0" (pointer_expression "*(int *)(puVar30 + 0xa526c)" * (cast_expression "(int *)(puVar30 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xa526c)" ( (binary_expression "puVar30 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }" else (compound_statement "{\n    pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);\n  }" { (expression_statement "pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674);" (assignment_expression "pppppcStack_cc = (char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674)" identifier = (cast_expression "(char *****)(*(int *)(puVar30 + 0xa526c) + -0x2674)" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar30 + 0xa526c) + -0x2674)" ( (binary_expression "*(int *)(puVar30 + 0xa526c) + -0x2674" (pointer_expression "*(int *)(puVar30 + 0xa526c)" * (cast_expression "(int *)(puVar30 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xa526c)" ( (binary_expression "puVar30 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }))) (expression_statement "ppppcVar15 = ppppcVar14;" (assignment_expression "ppppcVar15 = ppppcVar14" identifier = identifier) ;) (expression_statement "pppppcVar18 = pppppcVar17;" (assignment_expression "pppppcVar18 = pppppcVar17" identifier = identifier) ;) (expression_statement "pppppcVar21 = pppppcVar20;" (assignment_expression "pppppcVar21 = pppppcVar20" identifier = identifier) ;) (expression_statement "uStack_98 = unaff_s0;" (assignment_expression "uStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_94 = unaff_s1;" (assignment_expression "puStack_94 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_90 = unaff_s2;" (assignment_expression "uStack_90 = unaff_s2" identifier = identifier) ;) (expression_statement "ppppcStack_8c = unaff_s3;" (assignment_expression "ppppcStack_8c = unaff_s3" identifier = identifier) ;) (expression_statement "ppcStack_84 = ppOffsetList;" (assignment_expression "ppcStack_84 = ppOffsetList" identifier = identifier) ;) (expression_statement "pFStack_80 = pTab;" (assignment_expression "pFStack_80 = pTab" identifier = identifier) ;) (expression_statement "piStack_7c = pnOffsetList;" (assignment_expression "piStack_7c = pnOffsetList" identifier = identifier) ;) (expression_statement "pFStack_78 = pReader;" (assignment_expression "pFStack_78 = pReader" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar31;" (assignment_expression "pcStack_74 = pcVar31" identifier = identifier) ;) (if_statement "if (ppppcVar25 != (char ****)0x0) {\n    pppcVar5 = *ppppcVar14;\n    ppppcVar15 = (char ****)*pppcVar5;\n    if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" if (parenthesized_expression "(ppppcVar25 != (char ****)0x0)" ( (binary_expression "ppppcVar25 != (char ****)0x0" identifier != (cast_expression "(char ****)0x0" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    pppcVar5 = *ppppcVar14;\n    ppppcVar15 = (char ****)*pppcVar5;\n    if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" { (expression_statement "pppcVar5 = *ppppcVar14;" (assignment_expression "pppcVar5 = *ppppcVar14" identifier = (pointer_expression "*ppppcVar14" * identifier)) ;) (expression_statement "ppppcVar15 = (char ****)*pppcVar5;" (assignment_expression "ppppcVar15 = (char ****)*pppcVar5" identifier = (cast_expression "(char ****)*pppcVar5" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppcVar5" * identifier))) ;) (if_statement "if (ppppcVar15[0x14] != (char ***)0x0) {\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }" if (parenthesized_expression "(ppppcVar15[0x14] != (char ***)0x0)" ( (binary_expression "ppppcVar15[0x14] != (char ***)0x0" (subscript_expression "ppppcVar15[0x14]" identifier [ number_literal ]) != (cast_expression "(char ***)0x0" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n      iVar27 = *(int *)(puVar30 + 0xa52a4);\n      iVar22 = *(int *)(puVar30 + 0xa5208);\n      iVar6 = *(int *)(puVar30 + 0xa5208);\n      while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }\n      goto LAB_000b65d4;\n    }" { (expression_statement "iVar27 = *(int *)(puVar30 + 0xa52a4);" (assignment_expression "iVar27 = *(int *)(puVar30 + 0xa52a4)" identifier = (pointer_expression "*(int *)(puVar30 + 0xa52a4)" * (cast_expression "(int *)(puVar30 + 0xa52a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xa52a4)" ( (binary_expression "puVar30 + 0xa52a4" identifier + number_literal) ))))) ;) (expression_statement "iVar22 = *(int *)(puVar30 + 0xa5208);" (assignment_expression "iVar22 = *(int *)(puVar30 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar30 + 0xa5208)" * (cast_expression "(int *)(puVar30 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xa5208)" ( (binary_expression "puVar30 + 0xa5208" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar30 + 0xa5208);" (assignment_expression "iVar6 = *(int *)(puVar30 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar30 + 0xa5208)" * (cast_expression "(int *)(puVar30 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar30 + 0xa5208)" ( (binary_expression "puVar30 + 0xa5208" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        ppppcVar26 = (char ****)ppppcVar15[0x16];\n        ppppcVar28 = (char ****)ppppcVar15[0x17];\n        pppppcVar18 = &ppppcStack_a4;\n        pppppcVar21 = (char *****)&pppppcStack_a0;\n        iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n        if (iVar7 != 0) break;\n        if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }\n        ppppcVar15 = ppppcVar25;\n        pppppcVar21 = pppppcStack_cc;\n        (*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);\n        ppppcVar16 = ppppcStack_a4;\n        pppppcVar18 = pppppcStack_a0;\n        if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }\n        pppcVar13 = ppppcVar14[6];\n        if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n        if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;\n      }" { (expression_statement "ppppcVar26 = (char ****)ppppcVar15[0x16];" (assignment_expression "ppppcVar26 = (char ****)ppppcVar15[0x16]" identifier = (cast_expression "(char ****)ppppcVar15[0x16]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x16]" identifier [ number_literal ]))) ;) (expression_statement "ppppcVar28 = (char ****)ppppcVar15[0x17];" (assignment_expression "ppppcVar28 = (char ****)ppppcVar15[0x17]" identifier = (cast_expression "(char ****)ppppcVar15[0x17]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x17]" identifier [ number_literal ]))) ;) (expression_statement "pppppcVar18 = &ppppcStack_a4;" (assignment_expression "pppppcVar18 = &ppppcStack_a4" identifier = (pointer_expression "&ppppcStack_a4" & identifier)) ;) (expression_statement "pppppcVar21 = (char *****)&pppppcStack_a0;" (assignment_expression "pppppcVar21 = (char *****)&pppppcStack_a0" identifier = (cast_expression "(char *****)&pppppcStack_a0" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "&pppppcStack_a0" & identifier))) ;) (expression_statement "iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);" (assignment_expression "iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb)" identifier = (call_expression "(*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb)" (parenthesized_expression "(*(code *)(iVar27 + 0x6168))" ( (pointer_expression "*(code *)(iVar27 + 0x6168)" * (cast_expression "(code *)(iVar27 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x6168)" ( (binary_expression "iVar27 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar9 + 0xeb)" ( (binary_expression "iVar9 + 0xeb" identifier + number_literal) )))) ;) (if_statement "if (iVar7 != 0) break;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((int)ppppcVar25 < 2) {\n          ppppcVar16 = (char ****)0x1;\n        }\n        else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }" if (parenthesized_expression "((int)ppppcVar25 < 2)" ( (binary_expression "(int)ppppcVar25 < 2" (cast_expression "(int)ppppcVar25" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          ppppcVar16 = (char ****)0x1;\n        }" { (expression_statement "ppppcVar16 = (char ****)0x1;" (assignment_expression "ppppcVar16 = (char ****)0x1" identifier = (cast_expression "(char ****)0x1" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }" else (compound_statement "{\n          ppppcVar15 = (char ****)pppcVar5[1];\n          ppppcVar29 = (char ****)0x1;\n          ppppcVar16 = ppppcVar29;\n          if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }\n        }" { (expression_statement "ppppcVar15 = (char ****)pppcVar5[1];" (assignment_expression "ppppcVar15 = (char ****)pppcVar5[1]" identifier = (cast_expression "(char ****)pppcVar5[1]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "pppcVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppcVar29 = (char ****)0x1;" (assignment_expression "ppppcVar29 = (char ****)0x1" identifier = (cast_expression "(char ****)0x1" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppcVar16 = ppppcVar29;" (assignment_expression "ppppcVar16 = ppppcVar29" identifier = identifier) ;) (if_statement "if ((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)) {\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }" if (parenthesized_expression "((ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26))" ( (binary_expression "(ppppcVar15[0x14] != (char ***)0x0) && ((char ****)ppppcVar15[0x16] == ppppcVar26)" (parenthesized_expression "(ppppcVar15[0x14] != (char ***)0x0)" ( (binary_expression "ppppcVar15[0x14] != (char ***)0x0" (subscript_expression "ppppcVar15[0x14]" identifier [ number_literal ]) != (cast_expression "(char ***)0x0" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) && (parenthesized_expression "((char ****)ppppcVar15[0x16] == ppppcVar26)" ( (binary_expression "(char ****)ppppcVar15[0x16] == ppppcVar26" (cast_expression "(char ****)ppppcVar15[0x16]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x16]" identifier [ number_literal ])) == identifier) ))) )) (compound_statement "{\n            pppcVar13 = pppcVar5 + 2;\n            ppppcVar8 = (char ****)ppppcVar15[0x17];\n            while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }\n          }" { (expression_statement "pppcVar13 = pppcVar5 + 2;" (assignment_expression "pppcVar13 = pppcVar5 + 2" identifier = (binary_expression "pppcVar5 + 2" identifier + number_literal)) ;) (expression_statement "ppppcVar8 = (char ****)ppppcVar15[0x17];" (assignment_expression "ppppcVar8 = (char ****)ppppcVar15[0x17]" identifier = (cast_expression "(char ****)ppppcVar15[0x17]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x17]" identifier [ number_literal ]))) ;) (while_statement "while (ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28) {\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }" while (parenthesized_expression "(ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28)" ( (comma_expression "ppppcVar16 = ppppcVar29, ppppcVar8 == ppppcVar28" (assignment_expression "ppppcVar16 = ppppcVar29" identifier = identifier) , (binary_expression "ppppcVar8 == ppppcVar28" identifier == identifier)) )) (compound_statement "{\n              pppppcVar21 = (char *****)0x0;\n              pppppcVar18 = (char *****)0x0;\n              iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);\n              ppppcVar29 = (char ****)((int)ppppcVar29 + 1);\n              if (iVar7 != 0) goto LAB_000b65d4;\n              ppppcVar16 = ppppcVar25;\n              if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;\n              ppppcVar8 = (char ****)ppppcVar15[0x17];\n            }" { (expression_statement "pppppcVar21 = (char *****)0x0;" (assignment_expression "pppppcVar21 = (char *****)0x0" identifier = (cast_expression "(char *****)0x0" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "pppppcVar18 = (char *****)0x0;" (assignment_expression "pppppcVar18 = (char *****)0x0" identifier = (cast_expression "(char *****)0x0" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb);" (assignment_expression "iVar7 = (*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb)" identifier = (call_expression "(*(code *)(iVar27 + 0x6168))(iVar9 + 0xeb)" (parenthesized_expression "(*(code *)(iVar27 + 0x6168))" ( (pointer_expression "*(code *)(iVar27 + 0x6168)" * (cast_expression "(code *)(iVar27 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar27 + 0x6168)" ( (binary_expression "iVar27 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar9 + 0xeb)" ( (binary_expression "iVar9 + 0xeb" identifier + number_literal) )))) ;) (expression_statement "ppppcVar29 = (char ****)((int)ppppcVar29 + 1);" (assignment_expression "ppppcVar29 = (char ****)((int)ppppcVar29 + 1)" identifier = (cast_expression "(char ****)((int)ppppcVar29 + 1)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppcVar29 + 1)" ( (binary_expression "(int)ppppcVar29 + 1" (cast_expression "(int)ppppcVar29" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_000b65d4;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;)) (expression_statement "ppppcVar16 = ppppcVar25;" (assignment_expression "ppppcVar16 = ppppcVar25" identifier = identifier) ;) (if_statement "if (((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)) break;" if (parenthesized_expression "(((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26))" ( (binary_expression "((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)) ||\n                 (pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)" (parenthesized_expression "((ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0))" ( (binary_expression "(ppppcVar25 == ppppcVar29) ||\n                  (ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)" (parenthesized_expression "(ppppcVar25 == ppppcVar29)" ( (binary_expression "ppppcVar25 == ppppcVar29" identifier == identifier) )) || (parenthesized_expression "(ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0)" ( (comma_expression "ppppcVar15 = (char ****)*pppcVar13, ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0" (assignment_expression "ppppcVar15 = (char ****)*pppcVar13" identifier = (cast_expression "(char ****)*pppcVar13" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppcVar13" * identifier))) , (comma_expression "ppppcVar16 = ppppcVar29,\n                  ppppcVar15[0x14] == (char ***)0x0" (assignment_expression "ppppcVar16 = ppppcVar29" identifier = identifier) , (binary_expression "ppppcVar15[0x14] == (char ***)0x0" (subscript_expression "ppppcVar15[0x14]" identifier [ number_literal ]) == (cast_expression "(char ***)0x0" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)))) ))) )) || (parenthesized_expression "(pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26)" ( (comma_expression "pppcVar13 = pppcVar13 + 1, (char ****)ppppcVar15[0x16] != ppppcVar26" (assignment_expression "pppcVar13 = pppcVar13 + 1" identifier = (binary_expression "pppcVar13 + 1" identifier + number_literal)) , (binary_expression "(char ****)ppppcVar15[0x16] != ppppcVar26" (cast_expression "(char ****)ppppcVar15[0x16]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x16]" identifier [ number_literal ])) != identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "ppppcVar8 = (char ****)ppppcVar15[0x17];" (assignment_expression "ppppcVar8 = (char ****)ppppcVar15[0x17]" identifier = (cast_expression "(char ****)ppppcVar15[0x17]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[0x17]" identifier [ number_literal ]))) ;) })) })) }))) (expression_statement "ppppcVar15 = ppppcVar25;" (assignment_expression "ppppcVar15 = ppppcVar25" identifier = identifier) ;) (expression_statement "pppppcVar21 = pppppcStack_cc;" (assignment_expression "pppppcVar21 = pppppcStack_cc" identifier = identifier) ;) (expression_statement "(*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16);" (call_expression "(*(code *)(iVar22 + 0x2944))(*ppppcVar14,ppppcVar25,ppppcVar16)" (parenthesized_expression "(*(code *)(iVar22 + 0x2944))" ( (pointer_expression "*(code *)(iVar22 + 0x2944)" * (cast_expression "(code *)(iVar22 + 0x2944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar22 + 0x2944)" ( (binary_expression "iVar22 + 0x2944" identifier + number_literal) )))) )) (argument_list "(*ppppcVar14,ppppcVar25,ppppcVar16)" ( (pointer_expression "*ppppcVar14" * identifier) , identifier , identifier ))) ;) (expression_statement "ppppcVar16 = ppppcStack_a4;" (assignment_expression "ppppcVar16 = ppppcStack_a4" identifier = identifier) ;) (expression_statement "pppppcVar18 = pppppcStack_a0;" (assignment_expression "pppppcVar18 = pppppcStack_a0" identifier = identifier) ;) (if_statement "if (0 < (int)pppppcStack_a0) {\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }" if (parenthesized_expression "(0 < (int)pppppcStack_a0)" ( (binary_expression "0 < (int)pppppcStack_a0" number_literal < (cast_expression "(int)pppppcStack_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar7 = 0;\n          *pppppcVar20 = ppppcStack_a4;\n          *pppppcVar17 = ppppcVar26;\n          pppppcVar17[1] = ppppcVar28;\n          *(char ******)psVar2 = pppppcVar18;\n          break;\n        }" { (if_statement "if ((*pppcVar5)[0xe] == (char *)0x0) {\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }\n          else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" if (parenthesized_expression "((*pppcVar5)[0xe] == (char *)0x0)" ( (binary_expression "(*pppcVar5)[0xe] == (char *)0x0" (subscript_expression "(*pppcVar5)[0xe]" (parenthesized_expression "(*pppcVar5)" ( (pointer_expression "*pppcVar5" * identifier) )) [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) goto LAB_000b66e8;\n          }" { (expression_statement "pppcVar13 = ppppcVar14[6];" (assignment_expression "pppcVar13 = ppppcVar14[6]" identifier = (subscript_expression "ppppcVar14[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppcVar13) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppcVar13)" ( (binary_expression "-1 < (int)pppcVar13" number_literal < (cast_expression "(int)pppcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) }) (else_clause "else {\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" else (compound_statement "{\n            pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);\n            pppcVar13 = ppppcVar14[4];\n            if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }\n            (**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);\n            ppppcStack_a4 = (char ****)ppppcVar14[4];\n            pppcVar13 = ppppcVar14[6];\n            if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }\n            ppppcVar15 = ppppcVar16;\n            pppppcVar18 = pppppcStack_a0;\n            if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" { (expression_statement "pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1);" (assignment_expression "pppppcVar19 = (char *****)((int)pppppcStack_a0 + 1)" identifier = (cast_expression "(char *****)((int)pppppcStack_a0 + 1)" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "((int)pppppcStack_a0 + 1)" ( (binary_expression "(int)pppppcStack_a0 + 1" (cast_expression "(int)pppppcStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppcVar13 = ppppcVar14[4];" (assignment_expression "pppcVar13 = ppppcVar14[4]" identifier = (subscript_expression "ppppcVar14[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)ppppcVar14[5] < (int)pppppcVar19) {\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }" if (parenthesized_expression "((int)ppppcVar14[5] < (int)pppppcVar19)" ( (binary_expression "(int)ppppcVar14[5] < (int)pppppcVar19" (cast_expression "(int)ppppcVar14[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppcVar14[5]" identifier [ number_literal ])) < (cast_expression "(int)pppppcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pcVar31 = *(code **)(puVar30 + 0xa519c);\n              ppppcVar15 = (char ****)((int)pppppcVar19 * 2);\n              ppppcVar14[5] = (char ***)ppppcVar15;\n              pppppcVar18 = pppppcVar19;\n              pppcVar13 = (char ***)(*pcVar31)(pppcVar13);\n              if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }\n              ppppcVar14[4] = pppcVar13;\n            }" { (expression_statement "pcVar31 = *(code **)(puVar30 + 0xa519c);" (assignment_expression "pcVar31 = *(code **)(puVar30 + 0xa519c)" identifier = (pointer_expression "*(code **)(puVar30 + 0xa519c)" * (cast_expression "(code **)(puVar30 + 0xa519c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xa519c)" ( (binary_expression "puVar30 + 0xa519c" identifier + number_literal) ))))) ;) (expression_statement "ppppcVar15 = (char ****)((int)pppppcVar19 * 2);" (assignment_expression "ppppcVar15 = (char ****)((int)pppppcVar19 * 2)" identifier = (cast_expression "(char ****)((int)pppppcVar19 * 2)" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)pppppcVar19 * 2)" ( (binary_expression "(int)pppppcVar19 * 2" (cast_expression "(int)pppppcVar19" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppcVar14[5] = (char ***)ppppcVar15;" (assignment_expression "ppppcVar14[5] = (char ***)ppppcVar15" (subscript_expression "ppppcVar14[5]" identifier [ number_literal ]) = (cast_expression "(char ***)ppppcVar15" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "pppppcVar18 = pppppcVar19;" (assignment_expression "pppppcVar18 = pppppcVar19" identifier = identifier) ;) (expression_statement "pppcVar13 = (char ***)(*pcVar31)(pppcVar13);" (assignment_expression "pppcVar13 = (char ***)(*pcVar31)(pppcVar13)" identifier = (cast_expression "(char ***)(*pcVar31)(pppcVar13)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "(*pcVar31)(pppcVar13)" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "(pppcVar13)" ( identifier ))))) ;) (if_statement "if (pppcVar13 == (char ***)0x0) {\n                iVar7 = 7;\n                break;\n              }" if (parenthesized_expression "(pppcVar13 == (char ***)0x0)" ( (binary_expression "pppcVar13 == (char ***)0x0" identifier == (cast_expression "(char ***)0x0" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n                iVar7 = 7;\n                break;\n              }" { (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "ppppcVar14[4] = pppcVar13;" (assignment_expression "ppppcVar14[4] = pppcVar13" (subscript_expression "ppppcVar14[4]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "(**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19);" (call_expression "(**(code **)(puVar30 + 0xa55dc))(pppcVar13,ppppcVar16,pppppcVar19)" (parenthesized_expression "(**(code **)(puVar30 + 0xa55dc))" ( (pointer_expression "**(code **)(puVar30 + 0xa55dc)" * (pointer_expression "*(code **)(puVar30 + 0xa55dc)" * (cast_expression "(code **)(puVar30 + 0xa55dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xa55dc)" ( (binary_expression "puVar30 + 0xa55dc" identifier + number_literal) ))))) )) (argument_list "(pppcVar13,ppppcVar16,pppppcVar19)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppcStack_a4 = (char ****)ppppcVar14[4];" (assignment_expression "ppppcStack_a4 = (char ****)ppppcVar14[4]" identifier = (cast_expression "(char ****)ppppcVar14[4]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar14[4]" identifier [ number_literal ]))) ;) (expression_statement "pppcVar13 = ppppcVar14[6];" (assignment_expression "pppcVar13 = ppppcVar14[6]" identifier = (subscript_expression "ppppcVar14[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppcVar13) {\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }" if (parenthesized_expression "(-1 < (int)pppcVar13)" ( (binary_expression "-1 < (int)pppcVar13" number_literal < (cast_expression "(int)pppcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;\n              pppppcVar21 = (char *****)&pppppcStack_a0;\n              (*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);\n            }" { (labeled_statement "LAB_000b66e8:\n              ppppcVar16 = (char ****)0x1;" statement_identifier : (expression_statement "ppppcVar16 = (char ****)0x1;" (assignment_expression "ppppcVar16 = (char ****)0x1" identifier = (cast_expression "(char ****)0x1" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "pppppcVar21 = (char *****)&pppppcStack_a0;" (assignment_expression "pppppcVar21 = (char *****)&pppppcStack_a0" identifier = (cast_expression "(char *****)&pppppcStack_a0" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (pointer_expression "&pppppcStack_a0" & identifier))) ;) (expression_statement "(*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4);" (call_expression "(*(code *)(iVar6 + 0x5220))(pppcVar13,1,&ppppcStack_a4)" (parenthesized_expression "(*(code *)(iVar6 + 0x5220))" ( (pointer_expression "*(code *)(iVar6 + 0x5220)" * (cast_expression "(code *)(iVar6 + 0x5220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x5220)" ( (binary_expression "iVar6 + 0x5220" identifier + number_literal) )))) )) (argument_list "(pppcVar13,1,&ppppcStack_a4)" ( identifier , number_literal , (pointer_expression "&ppppcStack_a4" & identifier) ))) ;) })) (expression_statement "ppppcVar15 = ppppcVar16;" (assignment_expression "ppppcVar15 = ppppcVar16" identifier = identifier) ;) (expression_statement "pppppcVar18 = pppppcStack_a0;" (assignment_expression "pppppcVar18 = pppppcStack_a0" identifier = identifier) ;) (if_statement "if ((int)pppppcStack_a0 < 1) {\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" if (parenthesized_expression "((int)pppppcStack_a0 < 1)" ( (binary_expression "(int)pppppcStack_a0 < 1" (cast_expression "(int)pppppcStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" { (if_statement "if ((**ppppcVar14)[0x14] != (char *)0x0) goto LAB_000b66cc;" if (parenthesized_expression "((**ppppcVar14)[0x14] != (char *)0x0)" ( (binary_expression "(**ppppcVar14)[0x14] != (char *)0x0" (subscript_expression "(**ppppcVar14)[0x14]" (parenthesized_expression "(**ppppcVar14)" ( (pointer_expression "**ppppcVar14" * (pointer_expression "*ppppcVar14" * identifier)) )) [ number_literal ]) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b66cc;" goto statement_identifier ;)) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;) })) }))) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "*pppppcVar20 = ppppcStack_a4;" (assignment_expression "*pppppcVar20 = ppppcStack_a4" (pointer_expression "*pppppcVar20" * identifier) = identifier) ;) (expression_statement "*pppppcVar17 = ppppcVar26;" (assignment_expression "*pppppcVar17 = ppppcVar26" (pointer_expression "*pppppcVar17" * identifier) = identifier) ;) (expression_statement "pppppcVar17[1] = ppppcVar28;" (assignment_expression "pppppcVar17[1] = ppppcVar28" (subscript_expression "pppppcVar17[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(char ******)psVar2 = pppppcVar18;" (assignment_expression "*(char ******)psVar2 = pppppcVar18" (pointer_expression "*(char ******)psVar2" * (cast_expression "(char ******)psVar2" ( (type_descriptor "char ******" primitive_type (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))))) ) identifier)) = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "pppcVar13 = ppppcVar14[6];" (assignment_expression "pppcVar13 = ppppcVar14[6]" identifier = (subscript_expression "ppppcVar14[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppcVar13) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppcVar13)" ( (binary_expression "-1 < (int)pppcVar13" number_literal < (cast_expression "(int)pppcVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) (if_statement "if ((**ppppcVar14)[0x14] == (char *)0x0) goto LAB_000b6720;" if (parenthesized_expression "((**ppppcVar14)[0x14] == (char *)0x0)" ( (binary_expression "(**ppppcVar14)[0x14] == (char *)0x0" (subscript_expression "(**ppppcVar14)[0x14]" (parenthesized_expression "(**ppppcVar14)" ( (pointer_expression "**ppppcVar14" * (pointer_expression "*ppppcVar14" * identifier)) )) [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;)) (labeled_statement "LAB_000b66cc:\n        ppppcVar15 = (char ****)*pppcVar5;" statement_identifier : (expression_statement "ppppcVar15 = (char ****)*pppcVar5;" (assignment_expression "ppppcVar15 = (char ****)*pppcVar5" identifier = (cast_expression "(char ****)*pppcVar5" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppcVar5" * identifier))) ;)) })) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000b6720:\n  *pppppcVar20 = (char ****)0x0;" statement_identifier : (expression_statement "*pppppcVar20 = (char ****)0x0;" (assignment_expression "*pppppcVar20 = (char ****)0x0" (pointer_expression "*pppppcVar20" * identifier) = (cast_expression "(char ****)0x0" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b65d4:\n  if (pFStack_9c == (Fts3Table *)*piVar10) {\n    return iVar7;\n  }" statement_identifier : (if_statement "if (pFStack_9c == (Fts3Table *)*piVar10) {\n    return iVar7;\n  }" if (parenthesized_expression "(pFStack_9c == (Fts3Table *)*piVar10)" ( (binary_expression "pFStack_9c == (Fts3Table *)*piVar10" identifier == (cast_expression "(Fts3Table *)*piVar10" ( (type_descriptor "Fts3Table *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar10" * identifier))) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) }))) (expression_statement "pcVar31 = *(code **)(puVar30 + 0xa55bc);" (assignment_expression "pcVar31 = *(code **)(puVar30 + 0xa55bc)" identifier = (pointer_expression "*(code **)(puVar30 + 0xa55bc)" * (cast_expression "(code **)(puVar30 + 0xa55bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar30 + 0xa55bc)" ( (binary_expression "puVar30 + 0xa55bc" identifier + number_literal) ))))) ;) (expression_statement "p_00 = pFStack_9c;" (assignment_expression "p_00 = pFStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar31)();" (call_expression "(*pcVar31)()" (parenthesized_expression "(*pcVar31)" ( (pointer_expression "*pcVar31" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((char *****)ppppcVar15[0xb] == pppppcVar18) {\n    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);\n    pppppcVar21[4] = (char ****)ppppcVar15[7];\n    pppppcVar21[5] = (char ****)ppppcVar15[8];\n    ppppcVar14 = (char ****)ppppcVar15[4];\n    pppppcVar21[3] = (char ****)ppppcVar15[5];\n    pppppcVar21[2] = ppppcVar14;\n    return 0;\n  }" if (parenthesized_expression "((char *****)ppppcVar15[0xb] == pppppcVar18)" ( (binary_expression "(char *****)ppppcVar15[0xb] == pppppcVar18" (cast_expression "(char *****)ppppcVar15[0xb]" ( (type_descriptor "char *****" primitive_type (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (subscript_expression "ppppcVar15[0xb]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n    (*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);\n    pppppcVar21[4] = (char ****)ppppcVar15[7];\n    pppppcVar21[5] = (char ****)ppppcVar15[8];\n    ppppcVar14 = (char ****)ppppcVar15[4];\n    pppppcVar21[3] = (char ****)ppppcVar15[5];\n    pppppcVar21[2] = ppppcVar14;\n    return 0;\n  }" { (expression_statement "(*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx);" (call_expression "(*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))(&p_00->bDescIdx)" (parenthesized_expression "(*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc))" ( (pointer_expression "*(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc)" * (cast_expression "(code *)(*(int *)(pcVar31 + 0xa4f44) + -0x2edc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar31 + 0xa4f44) + -0x2edc)" ( (binary_expression "*(int *)(pcVar31 + 0xa4f44) + -0x2edc" (pointer_expression "*(int *)(pcVar31 + 0xa4f44)" * (cast_expression "(int *)(pcVar31 + 0xa4f44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar31 + 0xa4f44)" ( (binary_expression "pcVar31 + 0xa4f44" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(&p_00->bDescIdx)" ( (pointer_expression "&p_00->bDescIdx" & (field_expression "p_00->bDescIdx" identifier -> field_identifier)) ))) ;) (expression_statement "pppppcVar21[4] = (char ****)ppppcVar15[7];" (assignment_expression "pppppcVar21[4] = (char ****)ppppcVar15[7]" (subscript_expression "pppppcVar21[4]" identifier [ number_literal ]) = (cast_expression "(char ****)ppppcVar15[7]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[7]" identifier [ number_literal ]))) ;) (expression_statement "pppppcVar21[5] = (char ****)ppppcVar15[8];" (assignment_expression "pppppcVar21[5] = (char ****)ppppcVar15[8]" (subscript_expression "pppppcVar21[5]" identifier [ number_literal ]) = (cast_expression "(char ****)ppppcVar15[8]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[8]" identifier [ number_literal ]))) ;) (expression_statement "ppppcVar14 = (char ****)ppppcVar15[4];" (assignment_expression "ppppcVar14 = (char ****)ppppcVar15[4]" identifier = (cast_expression "(char ****)ppppcVar15[4]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[4]" identifier [ number_literal ]))) ;) (expression_statement "pppppcVar21[3] = (char ****)ppppcVar15[5];" (assignment_expression "pppppcVar21[3] = (char ****)ppppcVar15[5]" (subscript_expression "pppppcVar21[3]" identifier [ number_literal ]) = (cast_expression "(char ****)ppppcVar15[5]" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppcVar15[5]" identifier [ number_literal ]))) ;) (expression_statement "pppppcVar21[2] = ppppcVar14;" (assignment_expression "pppppcVar21[2] = ppppcVar14" (subscript_expression "pppppcVar21[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0) {\n    *pppppcVar21 = (char ****)0x1;\n    return 0;\n  }" if (parenthesized_expression "((Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0)" ( (binary_expression "(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17] == (Fts3MultiSegReader *)0x0" (cast_expression "(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17]" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcVar15[(int)pppppcVar18 * 6 + 0x17]" identifier [ (binary_expression "(int)pppppcVar18 * 6 + 0x17" (binary_expression "(int)pppppcVar18 * 6" (cast_expression "(int)pppppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) == (cast_expression "(Fts3MultiSegReader *)0x0" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *pppppcVar21 = (char ****)0x1;\n    return 0;\n  }" { (expression_statement "*pppppcVar21 = (char ****)0x1;" (assignment_expression "*pppppcVar21 = (char ****)0x1" (pointer_expression "*pppppcVar21" * identifier) = (cast_expression "(char ****)0x1" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar9 = sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5));" (assignment_expression "iVar9 = sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5))" identifier = (call_expression "sqlite3Fts3MsrIncrNext\n                    (p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5))" identifier (argument_list "(p_00,(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17],\n                     (sqlite3_int64 *)(pppppcVar21 + 2),(char **)(pppppcVar21 + 4),\n                     (int *)(pppppcVar21 + 5))" ( identifier , (cast_expression "(Fts3MultiSegReader *)ppppcVar15[(int)pppppcVar18 * 6 + 0x17]" ( (type_descriptor "Fts3MultiSegReader *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "ppppcVar15[(int)pppppcVar18 * 6 + 0x17]" identifier [ (binary_expression "(int)pppppcVar18 * 6 + 0x17" (binary_expression "(int)pppppcVar18 * 6" (cast_expression "(int)pppppcVar18" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ])) , (cast_expression "(sqlite3_int64 *)(pppppcVar21 + 2)" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppcVar21 + 2)" ( (binary_expression "pppppcVar21 + 2" identifier + number_literal) ))) , (cast_expression "(char **)(pppppcVar21 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pppppcVar21 + 4)" ( (binary_expression "pppppcVar21 + 4" identifier + number_literal) ))) , (cast_expression "(int *)(pppppcVar21 + 5)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pppppcVar21 + 5)" ( (binary_expression "pppppcVar21 + 5" identifier + number_literal) ))) )))) ;) (if_statement "if (pppppcVar21[4] == (char ****)0x0) {\n    puVar30[0xad15c] = 1;\n    return iVar9;\n  }" if (parenthesized_expression "(pppppcVar21[4] == (char ****)0x0)" ( (binary_expression "pppppcVar21[4] == (char ****)0x0" (subscript_expression "pppppcVar21[4]" identifier [ number_literal ]) == (cast_expression "(char ****)0x0" ( (type_descriptor "char ****" primitive_type (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    puVar30[0xad15c] = 1;\n    return iVar9;\n  }" { (expression_statement "puVar30[0xad15c] = 1;" (assignment_expression "puVar30[0xad15c] = 1" (subscript_expression "puVar30[0xad15c]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar9;" return identifier ;) })) (return_statement "return iVar9;" return identifier ;) })))
(translation_unit "int FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}\n\n" (function_definition "int FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" primitive_type (function_declarator "FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)" identifier (parameter_list "(char *param_1,int param_2,byte ****param_3,byte *****param_4)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "byte ****param_3" type_identifier (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))))) , (parameter_declaration "byte *****param_4" type_identifier (pointer_declarator "*****param_4" * (pointer_declarator "****param_4" * (pointer_declarator "***param_4" * (pointer_declarator "**param_4" * (pointer_declarator "*param_4" * identifier)))))) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "byte ****ppppbVar3;" type_identifier (pointer_declarator "****ppppbVar3" * (pointer_declarator "***ppppbVar3" * (pointer_declarator "**ppppbVar3" * (pointer_declarator "*ppppbVar3" * identifier)))) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "byte ***pppbVar5;" type_identifier (pointer_declarator "***pppbVar5" * (pointer_declarator "**pppbVar5" * (pointer_declarator "*pppbVar5" * identifier))) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "byte ***pppbVar9;" type_identifier (pointer_declarator "***pppbVar9" * (pointer_declarator "**pppbVar9" * (pointer_declarator "*pppbVar9" * identifier))) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "byte ***pppbVar12;" type_identifier (pointer_declarator "***pppbVar12" * (pointer_declarator "**pppbVar12" * (pointer_declarator "*pppbVar12" * identifier))) ;) (declaration "byte ****ppppbVar13;" type_identifier (pointer_declarator "****ppppbVar13" * (pointer_declarator "***ppppbVar13" * (pointer_declarator "**ppppbVar13" * (pointer_declarator "*ppppbVar13" * identifier)))) ;) (declaration "byte ****ppppbVar14;" type_identifier (pointer_declarator "****ppppbVar14" * (pointer_declarator "***ppppbVar14" * (pointer_declarator "**ppppbVar14" * (pointer_declarator "*ppppbVar14" * identifier)))) ;) (declaration "byte ****ppppbVar15;" type_identifier (pointer_declarator "****ppppbVar15" * (pointer_declarator "***ppppbVar15" * (pointer_declarator "**ppppbVar15" * (pointer_declarator "*ppppbVar15" * identifier)))) ;) (declaration "byte ****ppppbVar16;" type_identifier (pointer_declarator "****ppppbVar16" * (pointer_declarator "***ppppbVar16" * (pointer_declarator "**ppppbVar16" * (pointer_declarator "*ppppbVar16" * identifier)))) ;) (declaration "byte ****ppppbVar17;" type_identifier (pointer_declarator "****ppppbVar17" * (pointer_declarator "***ppppbVar17" * (pointer_declarator "**ppppbVar17" * (pointer_declarator "*ppppbVar17" * identifier)))) ;) (declaration "byte *****pppppbVar18;" type_identifier (pointer_declarator "*****pppppbVar18" * (pointer_declarator "****pppppbVar18" * (pointer_declarator "***pppppbVar18" * (pointer_declarator "**pppppbVar18" * (pointer_declarator "*pppppbVar18" * identifier))))) ;) (declaration "byte *****pppppbVar19;" type_identifier (pointer_declarator "*****pppppbVar19" * (pointer_declarator "****pppppbVar19" * (pointer_declarator "***pppppbVar19" * (pointer_declarator "**pppppbVar19" * (pointer_declarator "*pppppbVar19" * identifier))))) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 unaff_s0;" type_identifier identifier ;) (declaration "byte bVar21;" type_identifier identifier ;) (declaration "undefined *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "byte ***pppbVar22;" type_identifier (pointer_declarator "***pppbVar22" * (pointer_declarator "**pppbVar22" * (pointer_declarator "*pppbVar22" * identifier))) ;) (declaration "byte ****unaff_s3;" type_identifier (pointer_declarator "****unaff_s3" * (pointer_declarator "***unaff_s3" * (pointer_declarator "**unaff_s3" * (pointer_declarator "*unaff_s3" * identifier)))) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "byte ***pppbVar24;" type_identifier (pointer_declarator "***pppbVar24" * (pointer_declarator "**pppbVar24" * (pointer_declarator "*pppbVar24" * identifier))) ;) (declaration "byte ****ppppbVar25;" type_identifier (pointer_declarator "****ppppbVar25" * (pointer_declarator "***ppppbVar25" * (pointer_declarator "**ppppbVar25" * (pointer_declarator "*ppppbVar25" * identifier)))) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "byte *****pppppbStack_cc;" type_identifier (pointer_declarator "*****pppppbStack_cc" * (pointer_declarator "****pppppbStack_cc" * (pointer_declarator "***pppppbStack_cc" * (pointer_declarator "**pppppbStack_cc" * (pointer_declarator "*pppppbStack_cc" * identifier))))) ;) (declaration "byte ****ppppbStack_a4;" type_identifier (pointer_declarator "****ppppbStack_a4" * (pointer_declarator "***ppppbStack_a4" * (pointer_declarator "**ppppbStack_a4" * (pointer_declarator "*ppppbStack_a4" * identifier)))) ;) (declaration "byte ****ppppbStack_a0;" type_identifier (pointer_declarator "****ppppbStack_a0" * (pointer_declarator "***ppppbStack_a0" * (pointer_declarator "**ppppbStack_a0" * (pointer_declarator "*ppppbStack_a0" * identifier)))) ;) (declaration "int iStack_9c;" primitive_type identifier ;) (declaration "undefined4 uStack_98;" type_identifier identifier ;) (declaration "undefined *puStack_94;" type_identifier (pointer_declarator "*puStack_94" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "byte ****ppppbStack_8c;" type_identifier (pointer_declarator "****ppppbStack_8c" * (pointer_declarator "***ppppbStack_8c" * (pointer_declarator "**ppppbStack_8c" * (pointer_declarator "*ppppbStack_8c" * identifier)))) ;) (declaration "undefined *puStack_88;" type_identifier (pointer_declarator "*puStack_88" * identifier) ;) (declaration "byte ****ppppbStack_84;" type_identifier (pointer_declarator "****ppppbStack_84" * (pointer_declarator "***ppppbStack_84" * (pointer_declarator "**ppppbStack_84" * (pointer_declarator "*ppppbStack_84" * identifier)))) ;) (declaration "char *pcStack_80;" primitive_type (pointer_declarator "*pcStack_80" * identifier) ;) (declaration "byte *****pppppbStack_7c;" type_identifier (pointer_declarator "*****pppppbStack_7c" * (pointer_declarator "****pppppbStack_7c" * (pointer_declarator "***pppppbStack_7c" * (pointer_declarator "**pppppbStack_7c" * (pointer_declarator "*pppppbStack_7c" * identifier))))) ;) (declaration "int iStack_78;" primitive_type identifier ;) (declaration "code *pcStack_74;" type_identifier (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "undefined4 *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "byte ****local_58;" type_identifier (pointer_declarator "****local_58" * (pointer_declarator "***local_58" * (pointer_declarator "**local_58" * (pointer_declarator "*local_58" * identifier)))) ;) (declaration "byte ****local_3c;" type_identifier (pointer_declarator "****local_3c" * (pointer_declarator "***local_3c" * (pointer_declarator "**local_3c" * (pointer_declarator "*local_3c" * identifier)))) ;) (declaration "byte ****local_38;" type_identifier (pointer_declarator "****local_38" * (pointer_declarator "***local_38" * (pointer_declarator "**local_38" * (pointer_declarator "*local_38" * identifier)))) ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "ppppbVar3 = *(byte *****)(param_2 + 0x50);" (assignment_expression "ppppbVar3 = *(byte *****)(param_2 + 0x50)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x50)" * (cast_expression "(byte *****)(param_2 + 0x50)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" if (parenthesized_expression "((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0))" ( (binary_expression "(*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)" (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(int *)(param_2 + 0x38) == 0)" ( (binary_expression "*(int *)(param_2 + 0x38) == 0" (pointer_expression "*(int *)(param_2 + 0x38)" * (cast_expression "(int *)(param_2 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x38)" ( (binary_expression "param_2 + 0x38" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" { (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" identifier = number_literal) ;) (expression_statement "iVar6 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar6 = *(int *)(param_2 + 0x4c)" identifier = (pointer_expression "*(int *)(param_2 + 0x4c)" * (cast_expression "(int *)(param_2 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "unaff_s2 = 0xffffff80;" (assignment_expression "unaff_s2 = 0xffffff80" identifier = number_literal) ;) (expression_statement "unaff_s3 = *(byte *****)(param_2 + 0x48);" (assignment_expression "unaff_s3 = *(byte *****)(param_2 + 0x48)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x48)" * (cast_expression "(byte *****)(param_2 + 0x48)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" identifier = (pointer_expression "*(int *)(param_2 + 0x34)" * (cast_expression "(int *)(param_2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;" (assignment_expression "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4" identifier = (binary_expression "PTR_LAB_0015b6f8 + 0x5eb4" identifier + number_literal)) ;) (expression_statement "ppppbVar15 = param_3;" (assignment_expression "ppppbVar15 = param_3" identifier = identifier) ;) (expression_statement "pppppbVar18 = param_4;" (assignment_expression "pppppbVar18 = param_4" identifier = identifier) ;) (do_statement "do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );" do (compound_statement "{\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    }" { (expression_statement "bVar21 = bVar21 | *(byte *)ppppbVar3;" (assignment_expression "bVar21 = bVar21 | *(byte *)ppppbVar3" identifier = (binary_expression "bVar21 | *(byte *)ppppbVar3" identifier | (pointer_expression "*(byte *)ppppbVar3" * (cast_expression "(byte *)ppppbVar3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" identifier = identifier) ;) (while_statement "while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" while (parenthesized_expression "(bVar21 == 0)" ( (binary_expression "bVar21 == 0" identifier == number_literal) )) (compound_statement "{\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" { (expression_statement "ppppbVar13 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar13 = (byte ****)((int)local_3c + 1)" identifier = (cast_expression "(byte ****)((int)local_3c + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" identifier = number_literal) ;) (if_statement "if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" if (parenthesized_expression "((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))))" ( (binary_expression "(iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" ( (binary_expression "local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" identifier < (cast_expression "(byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" ( (binary_expression "*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)" (pointer_expression "*(int *)(param_2 + 0x28)" * (cast_expression "(int *)(param_2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x28)" ( (binary_expression "param_2 + 0x28" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_2 + 0x30)" * (cast_expression "(int *)(param_2 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x30)" ( (binary_expression "param_2 + 0x30" identifier + number_literal) ))))) )))) ))) )) (compound_statement "{\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" { (if_statement "if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" if (parenthesized_expression "(param_3 != (byte ****)0x0)" ( (binary_expression "param_3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" { (expression_statement "*param_3 = *(byte ****)(param_2 + 0x50);" (assignment_expression "*param_3 = *(byte ****)(param_2 + 0x50)" (pointer_expression "*param_3" * identifier) = (pointer_expression "*(byte ****)(param_2 + 0x50)" * (cast_expression "(byte ****)(param_2 + 0x50)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));" (assignment_expression "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" (pointer_expression "*param_4" * identifier) = (cast_expression "(byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" ( (binary_expression "(int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50))" (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "(-1 - *(int *)(param_2 + 0x50))" ( (binary_expression "-1 - *(int *)(param_2 + 0x50)" number_literal - (pointer_expression "*(int *)(param_2 + 0x50)" * (cast_expression "(int *)(param_2 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) ))))) ))) )))) ;) })) (expression_statement "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);" (assignment_expression "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6)" identifier = (cast_expression "(byte ****)((int)unaff_s3 + iVar6)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)unaff_s3 + iVar6)" ( (binary_expression "(int)unaff_s3 + iVar6" (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (if_statement "if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 <= ppppbVar13)" ( (binary_expression "unaff_s3 <= ppppbVar13" identifier <= identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 2);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 2)" identifier = (cast_expression "(byte ****)((int)local_3c + 2)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 2)" ( (binary_expression "(int)local_3c + 2" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;" if (parenthesized_expression "(*(byte *)((int)local_3c + 1) != 0)" ( (binary_expression "*(byte *)((int)local_3c + 1) != 0" (pointer_expression "*(byte *)((int)local_3c + 1)" * (cast_expression "(byte *)((int)local_3c + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_000b63a4;" goto statement_identifier ;)) (goto_statement "goto LAB_000b637c;" goto statement_identifier ;) })) (expression_statement "iVar20 = FUN_000b5eb4(param_2);" (assignment_expression "iVar20 = FUN_000b5eb4(param_2)" identifier = (call_expression "FUN_000b5eb4(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) goto LAB_000b6244;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;)) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" identifier = (pointer_expression "*(int *)(param_2 + 0x34)" * (cast_expression "(int *)(param_2 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x34)" ( (binary_expression "param_2 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "bVar21 = *(byte *)local_3c;" (assignment_expression "bVar21 = *(byte *)local_3c" identifier = (pointer_expression "*(byte *)local_3c" * (cast_expression "(byte *)local_3c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) })) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 1)" identifier = (cast_expression "(byte ****)((int)local_3c + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)local_3c + 1)" ( (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar21 = *(byte *)local_3c & 0x80;" (assignment_expression "bVar21 = *(byte *)local_3c & 0x80" identifier = (binary_expression "*(byte *)local_3c & 0x80" (pointer_expression "*(byte *)local_3c" * (cast_expression "(byte *)local_3c" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) & number_literal)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "local_38 = (byte ****)((uint)local_38 & 0xffffff);" (assignment_expression "local_38 = (byte ****)((uint)local_38 & 0xffffff)" identifier = (cast_expression "(byte ****)((uint)local_38 & 0xffffff)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((uint)local_38 & 0xffffff)" ( (binary_expression "(uint)local_38 & 0xffffff" (cast_expression "(uint)local_38" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" if (parenthesized_expression "(param_3 != (byte ****)0x0)" ( (binary_expression "param_3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" { (expression_statement "*param_3 = (byte ***)ppppbVar3;" (assignment_expression "*param_3 = (byte ***)ppppbVar3" (pointer_expression "*param_3" * identifier) = (cast_expression "(byte ***)ppppbVar3" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);" (assignment_expression "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1)" (pointer_expression "*param_4" * identifier) = (cast_expression "(byte ****)(*(int *)(param_2 + 0x54) + -1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "(*(int *)(param_2 + 0x54) + -1)" ( (binary_expression "*(int *)(param_2 + 0x54) + -1" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) + number_literal) )))) ;) })) (expression_statement "local_58 = (byte ****)&local_38;" (assignment_expression "local_58 = (byte ****)&local_38" identifier = (cast_expression "(byte ****)&local_38" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&local_38" & identifier))) ;) (expression_statement "ppppbVar15 = *(byte *****)(param_2 + 0x4c);" (assignment_expression "ppppbVar15 = *(byte *****)(param_2 + 0x4c)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x4c)" * (cast_expression "(byte *****)(param_2 + 0x4c)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x4c)" ( (binary_expression "param_2 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "local_60 = (undefined4 *)(param_2 + 0x58);" (assignment_expression "local_60 = (undefined4 *)(param_2 + 0x58)" identifier = (cast_expression "(undefined4 *)(param_2 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) ;) (expression_statement "ppppbVar13 = *(byte *****)(param_2 + 0x48);" (assignment_expression "ppppbVar13 = *(byte *****)(param_2 + 0x48)" identifier = (pointer_expression "*(byte *****)(param_2 + 0x48)" * (cast_expression "(byte *****)(param_2 + 0x48)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x48)" ( (binary_expression "param_2 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "local_5c = param_2 + 0x54;" (assignment_expression "local_5c = param_2 + 0x54" identifier = (binary_expression "param_2 + 0x54" identifier + number_literal)) ;) (expression_statement "pppppbVar18 = &local_3c;" (assignment_expression "pppppbVar18 = &local_3c" identifier = (pointer_expression "&local_3c" & identifier)) ;) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" identifier = identifier) ;) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x3268)" * (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x3268)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x3268)" ( (binary_expression "PTR_LAB_0015b6c0 + -0x3268" identifier + number_literal) )))) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" if (parenthesized_expression "(local_38._0_1_ == '\0')" ( (binary_expression "local_38._0_1_ == '\0'" (field_expression "local_38._0_1_" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "*(byte *****)(param_2 + 0x50) = local_3c;" (assignment_expression "*(byte *****)(param_2 + 0x50) = local_3c" (pointer_expression "*(byte *****)(param_2 + 0x50)" * (cast_expression "(byte *****)(param_2 + 0x50)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" else (compound_statement "{\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" * (cast_expression "(undefined4 *)(param_2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (labeled_statement "LAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" * (cast_expression "(undefined4 *)(param_2 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = number_literal) ;)) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" identifier = identifier) ;) (goto_statement "goto LAB_000b6244;" goto statement_identifier ;) (while_statement "while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" while (parenthesized_expression "(ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0)" ( (comma_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar13 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar13 + 1)" ( (binary_expression "(int)ppppbVar13 + 1" (cast_expression "(int)ppppbVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "*(byte *)ppppbVar13 == 0" (pointer_expression "*(byte *)ppppbVar13" * (cast_expression "(byte *)ppppbVar13" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal)) )) (compound_statement "{\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" { (labeled_statement "LAB_000b637c:\n    ppppbVar13 = ppppbVar3;" statement_identifier : (expression_statement "ppppbVar13 = ppppbVar3;" (assignment_expression "ppppbVar13 = ppppbVar3" identifier = identifier) ;)) (if_statement "if (unaff_s3 == ppppbVar13) goto LAB_000b6384;" if (parenthesized_expression "(unaff_s3 == ppppbVar13)" ( (binary_expression "unaff_s3 == ppppbVar13" identifier == identifier) )) (goto_statement "goto LAB_000b6384;" goto statement_identifier ;)) })) (labeled_statement "LAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;" statement_identifier : (expression_statement "ppppbVar15 = (byte ****)&DAT_0000000a;" (assignment_expression "ppppbVar15 = (byte ****)&DAT_0000000a" identifier = (cast_expression "(byte ****)&DAT_0000000a" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&DAT_0000000a" & identifier))) ;)) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" identifier = identifier) ;) (expression_statement "iVar20 = FUN_000b5f80(param_2);" (assignment_expression "iVar20 = FUN_000b5f80(param_2)" identifier = (call_expression "FUN_000b5f80(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }" { (expression_statement "ppppbVar3 = local_3c;" (assignment_expression "ppppbVar3 = local_3c" identifier = identifier) ;) (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" identifier = (call_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))" ( (pointer_expression "*(code *)(PTR_LAB_0015b65c + 0xf74)" * (cast_expression "(code *)(PTR_LAB_0015b65c + 0xf74)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b65c + 0xf74)" ( (binary_expression "PTR_LAB_0015b65c + 0xf74" identifier + number_literal) )))) )) (argument_list "(local_3c,&local_38)" ( identifier , (pointer_expression "&local_38" & identifier) )))) ;) (expression_statement "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);" (assignment_expression "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6)" (pointer_expression "*(byte **)(param_2 + 0x50)" * (cast_expression "(byte **)(param_2 + 0x50)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x50)" ( (binary_expression "param_2 + 0x50" identifier + number_literal) )))) = (cast_expression "(byte *)((int)ppppbVar3 + iVar6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppppbVar3 + iVar6)" ( (binary_expression "(int)ppppbVar3 + iVar6" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "ppppbVar13 = local_38;" (assignment_expression "ppppbVar13 = local_38" identifier = identifier) ;) (if_statement "if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" if (parenthesized_expression "(*param_1 == '\0')" ( (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }" { (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar11 + local_34;" (assignment_expression "uVar4 = uVar11 + local_34" identifier = (binary_expression "uVar11 + local_34" identifier + identifier)) ;) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));" (assignment_expression "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" (pointer_expression "*(byte **)(param_2 + 0x58)" * (cast_expression "(byte **)(param_2 + 0x58)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) = (cast_expression "(byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" ( (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58)" (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11)" (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier) + (call_expression "(uint)(uVar4 < uVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 < uVar11)" ( (binary_expression "uVar4 < uVar11" identifier < identifier) )))) + (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )))) ;) }) (else_clause "else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" else (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" { (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" identifier = (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = uVar11 - local_34;" (assignment_expression "uVar4 = uVar11 - local_34" identifier = (binary_expression "uVar11 - local_34" identifier - identifier)) ;) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" * (cast_expression "(uint *)(param_2 + 0x5c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x5c)" ( (binary_expression "param_2 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);" (assignment_expression "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) = (binary_expression "(*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (parenthesized_expression "(*(int *)(param_2 + 0x58) - (int)local_38)" ( (binary_expression "*(int *)(param_2 + 0x58) - (int)local_38" (pointer_expression "*(int *)(param_2 + 0x58)" * (cast_expression "(int *)(param_2 + 0x58)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) )))) - (cast_expression "(int)local_38" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(uVar11 < uVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < uVar4)" ( (binary_expression "uVar11 < uVar4" identifier < identifier) ))))) ;) }))) }) (else_clause "else {\n    iVar20 = 0;\n  }" else (compound_statement "{\n    iVar20 = 0;\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" statement_identifier : (if_statement "if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar1)" ( (binary_expression "local_2c == *(int *)puVar1" identifier == (pointer_expression "*(int *)puVar1" * (cast_expression "(int *)puVar1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return iVar20;\n  }" { (return_statement "return iVar20;" return identifier ;) }))) (expression_statement "pcVar27 = FUN_000b6454;" (assignment_expression "pcVar27 = FUN_000b6454" identifier = identifier) ;) (expression_statement "iVar20 = local_2c;" (assignment_expression "iVar20 = local_2c" identifier = identifier) ;) (expression_statement "puVar26 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar26 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar2 = local_60;" (assignment_expression "puVar2 = local_60" identifier = identifier) ;) (expression_statement "piVar10 = *(int **)(puVar26 + 0xa55d8);" (assignment_expression "piVar10 = *(int **)(puVar26 + 0xa55d8)" identifier = (pointer_expression "*(int **)(puVar26 + 0xa55d8)" * (cast_expression "(int **)(puVar26 + 0xa55d8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55d8)" ( (binary_expression "puVar26 + 0xa55d8" identifier + number_literal) ))))) ;) (expression_statement "puStack_88 = puVar1;" (assignment_expression "puStack_88 = puVar1" identifier = identifier) ;) (expression_statement "iStack_9c = *piVar10;" (assignment_expression "iStack_9c = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "ppppbVar3 = (byte ****)ppppbVar13[2];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar13[2]" identifier = (cast_expression "(byte ****)ppppbVar13[2]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar13[2]" identifier [ number_literal ]))) ;) (if_statement "if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" if (parenthesized_expression "(*(char *)(iVar20 + 0xeb) == '\0')" ( (binary_expression "*(char *)(iVar20 + 0xeb) == '\0'" (pointer_expression "*(char *)(iVar20 + 0xeb)" * (cast_expression "(char *)(iVar20 + 0xeb)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }" { (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" identifier = (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x26f0)" ( (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x26f0" (pointer_expression "*(int *)(puVar26 + 0xa526c)" * (cast_expression "(int *)(puVar26 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa526c)" ( (binary_expression "puVar26 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" else (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" { (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" identifier = (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x2674)" ( (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x2674" (pointer_expression "*(int *)(puVar26 + 0xa526c)" * (cast_expression "(int *)(puVar26 + 0xa526c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa526c)" ( (binary_expression "puVar26 + 0xa526c" identifier + number_literal) )))) + number_literal) )))) ;) }))) (expression_statement "ppppbVar14 = ppppbVar13;" (assignment_expression "ppppbVar14 = ppppbVar13" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbVar15;" (assignment_expression "ppppbVar16 = ppppbVar15" identifier = identifier) ;) (expression_statement "pppppbVar19 = pppppbVar18;" (assignment_expression "pppppbVar19 = pppppbVar18" identifier = identifier) ;) (expression_statement "uStack_98 = unaff_s0;" (assignment_expression "uStack_98 = unaff_s0" identifier = identifier) ;) (expression_statement "puStack_94 = unaff_s1;" (assignment_expression "puStack_94 = unaff_s1" identifier = identifier) ;) (expression_statement "uStack_90 = unaff_s2;" (assignment_expression "uStack_90 = unaff_s2" identifier = identifier) ;) (expression_statement "ppppbStack_8c = unaff_s3;" (assignment_expression "ppppbStack_8c = unaff_s3" identifier = identifier) ;) (expression_statement "ppppbStack_84 = param_3;" (assignment_expression "ppppbStack_84 = param_3" identifier = identifier) ;) (expression_statement "pcStack_80 = param_1;" (assignment_expression "pcStack_80 = param_1" identifier = identifier) ;) (expression_statement "pppppbStack_7c = param_4;" (assignment_expression "pppppbStack_7c = param_4" identifier = identifier) ;) (expression_statement "iStack_78 = param_2;" (assignment_expression "iStack_78 = param_2" identifier = identifier) ;) (expression_statement "pcStack_74 = pcVar27;" (assignment_expression "pcStack_74 = pcVar27" identifier = identifier) ;) (if_statement "if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" if (parenthesized_expression "(ppppbVar3 != (byte ****)0x0)" ( (binary_expression "ppppbVar3 != (byte ****)0x0" identifier != (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" { (expression_statement "pppbVar5 = *ppppbVar13;" (assignment_expression "pppbVar5 = *ppppbVar13" identifier = (pointer_expression "*ppppbVar13" * identifier)) ;) (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" identifier = (cast_expression "(byte ****)*pppbVar5" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar5" * identifier))) ;) (if_statement "if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" if (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" ( (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) != (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" { (expression_statement "iVar23 = *(int *)(puVar26 + 0xa52a4);" (assignment_expression "iVar23 = *(int *)(puVar26 + 0xa52a4)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa52a4)" * (cast_expression "(int *)(puVar26 + 0xa52a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa52a4)" ( (binary_expression "puVar26 + 0xa52a4" identifier + number_literal) ))))) ;) (expression_statement "iVar6 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar6 = *(int *)(puVar26 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa5208)" * (cast_expression "(int *)(puVar26 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa5208)" ( (binary_expression "puVar26 + 0xa5208" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar7 = *(int *)(puVar26 + 0xa5208)" identifier = (pointer_expression "*(int *)(puVar26 + 0xa5208)" * (cast_expression "(int *)(puVar26 + 0xa5208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar26 + 0xa5208)" ( (binary_expression "puVar26 + 0xa5208" identifier + number_literal) ))))) ;) (while_statement "while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" { (expression_statement "pppbVar22 = ppppbVar14[0x16];" (assignment_expression "pppbVar22 = ppppbVar14[0x16]" identifier = (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ])) ;) (expression_statement "pppbVar24 = ppppbVar14[0x17];" (assignment_expression "pppbVar24 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) (expression_statement "ppppbVar16 = (byte ****)&ppppbStack_a4;" (assignment_expression "ppppbVar16 = (byte ****)&ppppbStack_a4" identifier = (cast_expression "(byte ****)&ppppbStack_a4" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "&ppppbStack_a4" & identifier))) ;) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" identifier = (pointer_expression "&ppppbStack_a0" & identifier)) ;) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" identifier = (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" ( (pointer_expression "*(code *)(iVar23 + 0x6168)" * (cast_expression "(code *)(iVar23 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x6168)" ( (binary_expression "iVar23 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) ;) (if_statement "if (iVar8 != 0) break;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (break_statement "break;" break ;)) (if_statement "if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" if (parenthesized_expression "((int)ppppbVar3 < 2)" ( (binary_expression "(int)ppppbVar3 < 2" (cast_expression "(int)ppppbVar3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          ppppbVar16 = (byte ****)0x1;\n        }" { (expression_statement "ppppbVar16 = (byte ****)0x1;" (assignment_expression "ppppbVar16 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) }) (else_clause "else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" else (compound_statement "{\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" { (expression_statement "ppppbVar14 = (byte ****)pppbVar5[1];" (assignment_expression "ppppbVar14 = (byte ****)pppbVar5[1]" identifier = (cast_expression "(byte ****)pppbVar5[1]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "pppbVar5[1]" identifier [ number_literal ]))) ;) (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "ppppbVar16 = ppppbVar25;" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) ;) (if_statement "if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" if (parenthesized_expression "((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22))" ( (binary_expression "(ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)" (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" ( (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) != (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) && (parenthesized_expression "(ppppbVar14[0x16] == pppbVar22)" ( (binary_expression "ppppbVar14[0x16] == pppbVar22" (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ]) == identifier) ))) )) (compound_statement "{\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" { (expression_statement "pppbVar12 = pppbVar5 + 2;" (assignment_expression "pppbVar12 = pppbVar5 + 2" identifier = (binary_expression "pppbVar5 + 2" identifier + number_literal)) ;) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) (while_statement "while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" while (parenthesized_expression "(ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24)" ( (comma_expression "ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) , (binary_expression "pppbVar9 == pppbVar24" identifier == identifier)) )) (compound_statement "{\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" { (expression_statement "pppppbVar19 = (byte *****)0x0;" (assignment_expression "pppppbVar19 = (byte *****)0x0" identifier = (cast_expression "(byte *****)0x0" ( (type_descriptor "byte *****" type_identifier (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))) ) number_literal)) ;) (expression_statement "ppppbVar16 = (byte ****)0x0;" (assignment_expression "ppppbVar16 = (byte ****)0x0" identifier = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" identifier = (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" ( (pointer_expression "*(code *)(iVar23 + 0x6168)" * (cast_expression "(code *)(iVar23 + 0x6168)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0x6168)" ( (binary_expression "iVar23 + 0x6168" identifier + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) )))) ;) (expression_statement "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);" (assignment_expression "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbVar25 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar25 + 1)" ( (binary_expression "(int)ppppbVar25 + 1" (cast_expression "(int)ppppbVar25" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_000b65d4;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;)) (expression_statement "ppppbVar16 = ppppbVar3;" (assignment_expression "ppppbVar16 = ppppbVar3" identifier = identifier) ;) (if_statement "if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;" if (parenthesized_expression "(((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22))" ( (binary_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" (parenthesized_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0))" ( (binary_expression "(ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" (parenthesized_expression "(ppppbVar3 == ppppbVar25)" ( (binary_expression "ppppbVar3 == ppppbVar25" identifier == identifier) )) || (parenthesized_expression "(ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" ( (comma_expression "ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar12" identifier = (cast_expression "(byte ****)*pppbVar12" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar12" * identifier))) , (comma_expression "ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar16 = ppppbVar25" identifier = identifier) , (binary_expression "ppppbVar14[0x14] == (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" identifier [ number_literal ]) == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)))) ))) )) || (parenthesized_expression "(pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" ( (comma_expression "pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22" (assignment_expression "pppbVar12 = pppbVar12 + 1" identifier = (binary_expression "pppbVar12 + 1" identifier + number_literal)) , (binary_expression "ppppbVar14[0x16] != pppbVar22" (subscript_expression "ppppbVar14[0x16]" identifier [ number_literal ]) != identifier)) ))) )) (break_statement "break;" break ;)) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" identifier = (subscript_expression "ppppbVar14[0x17]" identifier [ number_literal ])) ;) })) })) }))) (expression_statement "ppppbVar14 = ppppbVar3;" (assignment_expression "ppppbVar14 = ppppbVar3" identifier = identifier) ;) (expression_statement "pppppbVar19 = pppppbStack_cc;" (assignment_expression "pppppbVar19 = pppppbStack_cc" identifier = identifier) ;) (expression_statement "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);" (call_expression "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16)" (parenthesized_expression "(*(code *)(iVar6 + 0x2944))" ( (pointer_expression "*(code *)(iVar6 + 0x2944)" * (cast_expression "(code *)(iVar6 + 0x2944)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar6 + 0x2944)" ( (binary_expression "iVar6 + 0x2944" identifier + number_literal) )))) )) (argument_list "(*ppppbVar13,ppppbVar3,ppppbVar16)" ( (pointer_expression "*ppppbVar13" * identifier) , identifier , identifier ))) ;) (expression_statement "ppppbVar25 = ppppbStack_a4;" (assignment_expression "ppppbVar25 = ppppbStack_a4" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" identifier = identifier) ;) (if_statement "if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" if (parenthesized_expression "(0 < (int)ppppbStack_a0)" ( (binary_expression "0 < (int)ppppbStack_a0" number_literal < (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" { (if_statement "if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" if (parenthesized_expression "((*pppbVar5)[0xe] == (byte *)0x0)" ( (binary_expression "(*pppbVar5)[0xe] == (byte *)0x0" (subscript_expression "(*pppbVar5)[0xe]" (parenthesized_expression "(*pppbVar5)" ( (pointer_expression "*pppbVar5" * identifier) )) [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }" { (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) }) (else_clause "else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" else (compound_statement "{\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" { (expression_statement "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);" (assignment_expression "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1)" identifier = (cast_expression "(byte ****)((int)ppppbStack_a0 + 1)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbStack_a0 + 1)" ( (binary_expression "(int)ppppbStack_a0 + 1" (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pppbVar12 = ppppbVar13[4];" (assignment_expression "pppbVar12 = ppppbVar13[4]" identifier = (subscript_expression "ppppbVar13[4]" identifier [ number_literal ])) ;) (if_statement "if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" if (parenthesized_expression "((int)ppppbVar13[5] < (int)ppppbVar17)" ( (binary_expression "(int)ppppbVar13[5] < (int)ppppbVar17" (cast_expression "(int)ppppbVar13[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppppbVar13[5]" identifier [ number_literal ])) < (cast_expression "(int)ppppbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" { (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa519c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa519c)" identifier = (pointer_expression "*(code **)(puVar26 + 0xa519c)" * (cast_expression "(code **)(puVar26 + 0xa519c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa519c)" ( (binary_expression "puVar26 + 0xa519c" identifier + number_literal) ))))) ;) (expression_statement "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);" (assignment_expression "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2)" identifier = (cast_expression "(byte ****)((int)ppppbVar17 * 2)" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (parenthesized_expression "((int)ppppbVar17 * 2)" ( (binary_expression "(int)ppppbVar17 * 2" (cast_expression "(int)ppppbVar17" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) )))) ;) (expression_statement "ppppbVar13[5] = (byte ***)ppppbVar14;" (assignment_expression "ppppbVar13[5] = (byte ***)ppppbVar14" (subscript_expression "ppppbVar13[5]" identifier [ number_literal ]) = (cast_expression "(byte ***)ppppbVar14" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) identifier)) ;) (expression_statement "ppppbVar16 = ppppbVar17;" (assignment_expression "ppppbVar16 = ppppbVar17" identifier = identifier) ;) (expression_statement "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);" (assignment_expression "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12)" identifier = (cast_expression "(byte ***)(*pcVar27)(pppbVar12)" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (call_expression "(*pcVar27)(pppbVar12)" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "(pppbVar12)" ( identifier ))))) ;) (if_statement "if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }" if (parenthesized_expression "(pppbVar12 == (byte ***)0x0)" ( (binary_expression "pppbVar12 == (byte ***)0x0" identifier == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n                iVar8 = 7;\n                break;\n              }" { (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (break_statement "break;" break ;) })) (expression_statement "ppppbVar13[4] = pppbVar12;" (assignment_expression "ppppbVar13[4] = pppbVar12" (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]) = identifier) ;) })) (expression_statement "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);" (call_expression "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17)" (parenthesized_expression "(**(code **)(puVar26 + 0xa55dc))" ( (pointer_expression "**(code **)(puVar26 + 0xa55dc)" * (pointer_expression "*(code **)(puVar26 + 0xa55dc)" * (cast_expression "(code **)(puVar26 + 0xa55dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55dc)" ( (binary_expression "puVar26 + 0xa55dc" identifier + number_literal) ))))) )) (argument_list "(pppbVar12,ppppbVar25,ppppbVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "ppppbStack_a4 = (byte ****)ppppbVar13[4];" (assignment_expression "ppppbStack_a4 = (byte ****)ppppbVar13[4]" identifier = (cast_expression "(byte ****)ppppbVar13[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar13[4]" identifier [ number_literal ]))) ;) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" { (labeled_statement "LAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;" statement_identifier : (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" identifier = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" identifier = (pointer_expression "&ppppbStack_a0" & identifier)) ;) (expression_statement "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);" (call_expression "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4)" (parenthesized_expression "(*(code *)(iVar7 + 0x5220))" ( (pointer_expression "*(code *)(iVar7 + 0x5220)" * (cast_expression "(code *)(iVar7 + 0x5220)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x5220)" ( (binary_expression "iVar7 + 0x5220" identifier + number_literal) )))) )) (argument_list "(pppbVar12,1,&ppppbStack_a4)" ( identifier , number_literal , (pointer_expression "&ppppbStack_a4" & identifier) ))) ;) })) (expression_statement "ppppbVar14 = ppppbVar25;" (assignment_expression "ppppbVar14 = ppppbVar25" identifier = identifier) ;) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" identifier = identifier) ;) (if_statement "if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" if (parenthesized_expression "((int)ppppbStack_a0 < 1)" ( (binary_expression "(int)ppppbStack_a0 < 1" (cast_expression "(int)ppppbStack_a0" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" { (if_statement "if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;" if (parenthesized_expression "((**ppppbVar13)[0x14] != (byte *)0x0)" ( (binary_expression "(**ppppbVar13)[0x14] != (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" ( (pointer_expression "**ppppbVar13" * (pointer_expression "*ppppbVar13" * identifier)) )) [ number_literal ]) != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b66cc;" goto statement_identifier ;)) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;) })) }))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "*pppppbVar18 = ppppbStack_a4;" (assignment_expression "*pppppbVar18 = ppppbStack_a4" (pointer_expression "*pppppbVar18" * identifier) = identifier) ;) (expression_statement "*ppppbVar15 = pppbVar22;" (assignment_expression "*ppppbVar15 = pppbVar22" (pointer_expression "*ppppbVar15" * identifier) = identifier) ;) (expression_statement "ppppbVar15[1] = pppbVar24;" (assignment_expression "ppppbVar15[1] = pppbVar24" (subscript_expression "ppppbVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*puVar2 = ppppbVar16;" (assignment_expression "*puVar2 = ppppbVar16" (pointer_expression "*puVar2" * identifier) = identifier) ;) (break_statement "break;" break ;) })) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" identifier = (subscript_expression "ppppbVar13[6]" identifier [ number_literal ])) ;) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" if (parenthesized_expression "(-1 < (int)pppbVar12)" ( (binary_expression "-1 < (int)pppbVar12" number_literal < (cast_expression "(int)pppbVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_000b66e8;" goto statement_identifier ;)) (if_statement "if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;" if (parenthesized_expression "((**ppppbVar13)[0x14] == (byte *)0x0)" ( (binary_expression "(**ppppbVar13)[0x14] == (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" ( (pointer_expression "**ppppbVar13" * (pointer_expression "*ppppbVar13" * identifier)) )) [ number_literal ]) == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000b6720;" goto statement_identifier ;)) (labeled_statement "LAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;" statement_identifier : (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" identifier = (cast_expression "(byte ****)*pppbVar5" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (pointer_expression "*pppbVar5" * identifier))) ;)) })) (goto_statement "goto LAB_000b65d4;" goto statement_identifier ;) })) })) (labeled_statement "LAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;" statement_identifier : (expression_statement "*pppppbVar18 = (byte ****)0x0;" (assignment_expression "*pppppbVar18 = (byte ****)0x0" (pointer_expression "*pppppbVar18" * identifier) = (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;)) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" statement_identifier : (if_statement "if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" if (parenthesized_expression "(iStack_9c == *piVar10)" ( (binary_expression "iStack_9c == *piVar10" identifier == (pointer_expression "*piVar10" * identifier)) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) }))) (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa55bc);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa55bc)" identifier = (pointer_expression "*(code **)(puVar26 + 0xa55bc)" * (cast_expression "(code **)(puVar26 + 0xa55bc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar26 + 0xa55bc)" ( (binary_expression "puVar26 + 0xa55bc" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iStack_9c;" (assignment_expression "iVar20 = iStack_9c" identifier = identifier) ;) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" if (parenthesized_expression "((byte ****)ppppbVar14[0xb] == ppppbVar16)" ( (binary_expression "(byte ****)ppppbVar14[0xb] == ppppbVar16" (cast_expression "(byte ****)ppppbVar14[0xb]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[0xb]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" { (expression_statement "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))" ( (pointer_expression "*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" * (cast_expression "(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" ( (binary_expression "*(int *)(pcVar27 + 0xa4f44) + -0x2edc" (pointer_expression "*(int *)(pcVar27 + 0xa4f44)" * (cast_expression "(int *)(pcVar27 + 0xa4f44)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar27 + 0xa4f44)" ( (binary_expression "pcVar27 + 0xa4f44" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(iVar20 + 0xeb)" ( (binary_expression "iVar20 + 0xeb" identifier + number_literal) ))) ;) (expression_statement "pppppbVar19[4] = (byte ****)ppppbVar14[7];" (assignment_expression "pppppbVar19[4] = (byte ****)ppppbVar14[7]" (subscript_expression "pppppbVar19[4]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[7]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[7]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[5] = (byte ****)ppppbVar14[8];" (assignment_expression "pppppbVar19[5] = (byte ****)ppppbVar14[8]" (subscript_expression "pppppbVar19[5]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[8]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[8]" identifier [ number_literal ]))) ;) (expression_statement "ppppbVar3 = (byte ****)ppppbVar14[4];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar14[4]" identifier = (cast_expression "(byte ****)ppppbVar14[4]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[4]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[3] = (byte ****)ppppbVar14[5];" (assignment_expression "pppppbVar19[3] = (byte ****)ppppbVar14[5]" (subscript_expression "pppppbVar19[3]" identifier [ number_literal ]) = (cast_expression "(byte ****)ppppbVar14[5]" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) (subscript_expression "ppppbVar14[5]" identifier [ number_literal ]))) ;) (expression_statement "pppppbVar19[2] = ppppbVar3;" (assignment_expression "pppppbVar19[2] = ppppbVar3" (subscript_expression "pppppbVar19[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" if (parenthesized_expression "(ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0)" ( (binary_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0" (subscript_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17]" identifier [ (binary_expression "(int)ppppbVar16 * 6 + 0x17" (binary_expression "(int)ppppbVar16 * 6" (cast_expression "(int)ppppbVar16" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal) + number_literal) ]) == (cast_expression "(byte ***)0x0" ( (type_descriptor "byte ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) number_literal)) )) (compound_statement "{\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" { (expression_statement "*pppppbVar19 = (byte ****)0x1;" (assignment_expression "*pppppbVar19 = (byte ****)0x1" (pointer_expression "*pppppbVar19" * identifier) = (cast_expression "(byte ****)0x1" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar20 = FUN_000b6454();" (assignment_expression "iVar20 = FUN_000b6454()" identifier = (call_expression "FUN_000b6454()" identifier (argument_list "()" ( )))) ;) (if_statement "if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" if (parenthesized_expression "(pppppbVar19[4] == (byte ****)0x0)" ( (binary_expression "pppppbVar19[4] == (byte ****)0x0" (subscript_expression "pppppbVar19[4]" identifier [ number_literal ]) == (cast_expression "(byte ****)0x0" ( (type_descriptor "byte ****" type_identifier (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))))) ) number_literal)) )) (compound_statement "{\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" { (expression_statement "puVar26[0xad15c] = 1;" (assignment_expression "puVar26[0xad15c] = 1" (subscript_expression "puVar26[0xad15c]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return iVar20;" return identifier ;) })) (return_statement "return iVar20;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT))))) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression LIT - (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 *)) ) (parenthesized_expression ( (binary_expression IDENT + 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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) & LIT)) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & 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 ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (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) ;) }))) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (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 , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_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 *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (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 * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) 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 ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)))) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression (subscript_expression IDENT [ LIT ]) != IDENT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) }))) (expression_statement (assignment_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 ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (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 (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_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 , LIT , (pointer_expression & 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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * IDENT)) )) [ LIT ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * IDENT)) )) [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (pointer_expression * IDENT))) ;)) })) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) }))) (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 = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *))))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)\n\n{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" (primitive_type "int") (function_declarator "FUN_000b6168(char *param_1,int param_2,byte ****param_3,byte *****param_4)" (identifier "FUN_000b6168") (parameter_list "(char *param_1,int param_2,byte ****param_3,byte *****param_4)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "byte ****param_3" (type_identifier "byte") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3")))))) (, ",") (parameter_declaration "byte *****param_4" (type_identifier "byte") (pointer_declarator "*****param_4" (* "*") (pointer_declarator "****param_4" (* "*") (pointer_declarator "***param_4" (* "*") (pointer_declarator "**param_4" (* "*") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))))))) () ")"))) (compound_statement "{\n  undefined *puVar1;\n  undefined4 *puVar2;\n  byte ****ppppbVar3;\n  uint uVar4;\n  byte ***pppbVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  byte ***pppbVar9;\n  int *piVar10;\n  uint uVar11;\n  byte ***pppbVar12;\n  byte ****ppppbVar13;\n  byte ****ppppbVar14;\n  byte ****ppppbVar15;\n  byte ****ppppbVar16;\n  byte ****ppppbVar17;\n  byte *****pppppbVar18;\n  byte *****pppppbVar19;\n  int iVar20;\n  undefined4 unaff_s0;\n  byte bVar21;\n  undefined *unaff_s1;\n  undefined4 unaff_s2;\n  byte ***pppbVar22;\n  byte ****unaff_s3;\n  int iVar23;\n  byte ***pppbVar24;\n  byte ****ppppbVar25;\n  undefined *puVar26;\n  code *pcVar27;\n  byte *****pppppbStack_cc;\n  byte ****ppppbStack_a4;\n  byte ****ppppbStack_a0;\n  int iStack_9c;\n  undefined4 uStack_98;\n  undefined *puStack_94;\n  undefined4 uStack_90;\n  byte ****ppppbStack_8c;\n  undefined *puStack_88;\n  byte ****ppppbStack_84;\n  char *pcStack_80;\n  byte *****pppppbStack_7c;\n  int iStack_78;\n  code *pcStack_74;\n  undefined4 *local_60;\n  int local_5c;\n  byte ****local_58;\n  byte ****local_3c;\n  byte ****local_38;\n  int local_34;\n  int local_2c;\n  \n  puVar1 = PTR___stack_chk_guard_0015ba2c;\n  ppppbVar3 = *(byte *****)(param_2 + 0x50);\n  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }\n  local_38 = (byte ****)((uint)local_38 & 0xffffff);\n  if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }\n  local_58 = (byte ****)&local_38;\n  ppppbVar15 = *(byte *****)(param_2 + 0x4c);\n  local_60 = (undefined4 *)(param_2 + 0x58);\n  ppppbVar13 = *(byte *****)(param_2 + 0x48);\n  local_5c = param_2 + 0x54;\n  pppppbVar18 = &local_3c;\n  local_3c = ppppbVar3;\n  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);\n  if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }\n  goto LAB_000b6244;\nLAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;\n  iVar20 = 0;\n  local_3c = ppppbVar13;\n  goto LAB_000b6244;\n  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }\nLAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;\n  local_3c = ppppbVar13;\n  iVar20 = FUN_000b5f80(param_2);\n  if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }\nLAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }\n  pcVar27 = FUN_000b6454;\n  iVar20 = local_2c;\n  puVar26 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  puVar2 = local_60;\n  piVar10 = *(int **)(puVar26 + 0xa55d8);\n  puStack_88 = puVar1;\n  iStack_9c = *piVar10;\n  ppppbVar3 = (byte ****)ppppbVar13[2];\n  if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }\n  ppppbVar14 = ppppbVar13;\n  ppppbVar16 = ppppbVar15;\n  pppppbVar19 = pppppbVar18;\n  uStack_98 = unaff_s0;\n  puStack_94 = unaff_s1;\n  uStack_90 = unaff_s2;\n  ppppbStack_8c = unaff_s3;\n  ppppbStack_84 = param_3;\n  pcStack_80 = param_1;\n  pppppbStack_7c = param_4;\n  iStack_78 = param_2;\n  pcStack_74 = pcVar27;\n  if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }\nLAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;\n  iVar8 = 0;\nLAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }\n  pcVar27 = *(code **)(puVar26 + 0xa55bc);\n  iVar20 = iStack_9c;\n  (*pcVar27)();\n  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }\n  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }\n  iVar20 = FUN_000b6454();\n  if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }\n  return iVar20;\n}" ({ "{") (declaration "undefined *puVar1;" (type_identifier "undefined") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "byte ****ppppbVar3;" (type_identifier "byte") (pointer_declarator "****ppppbVar3" (* "*") (pointer_declarator "***ppppbVar3" (* "*") (pointer_declarator "**ppppbVar3" (* "*") (pointer_declarator "*ppppbVar3" (* "*") (identifier "ppppbVar3"))))) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "byte ***pppbVar5;" (type_identifier "byte") (pointer_declarator "***pppbVar5" (* "*") (pointer_declarator "**pppbVar5" (* "*") (pointer_declarator "*pppbVar5" (* "*") (identifier "pppbVar5")))) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "byte ***pppbVar9;" (type_identifier "byte") (pointer_declarator "***pppbVar9" (* "*") (pointer_declarator "**pppbVar9" (* "*") (pointer_declarator "*pppbVar9" (* "*") (identifier "pppbVar9")))) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "byte ***pppbVar12;" (type_identifier "byte") (pointer_declarator "***pppbVar12" (* "*") (pointer_declarator "**pppbVar12" (* "*") (pointer_declarator "*pppbVar12" (* "*") (identifier "pppbVar12")))) (; ";")) (declaration "byte ****ppppbVar13;" (type_identifier "byte") (pointer_declarator "****ppppbVar13" (* "*") (pointer_declarator "***ppppbVar13" (* "*") (pointer_declarator "**ppppbVar13" (* "*") (pointer_declarator "*ppppbVar13" (* "*") (identifier "ppppbVar13"))))) (; ";")) (declaration "byte ****ppppbVar14;" (type_identifier "byte") (pointer_declarator "****ppppbVar14" (* "*") (pointer_declarator "***ppppbVar14" (* "*") (pointer_declarator "**ppppbVar14" (* "*") (pointer_declarator "*ppppbVar14" (* "*") (identifier "ppppbVar14"))))) (; ";")) (declaration "byte ****ppppbVar15;" (type_identifier "byte") (pointer_declarator "****ppppbVar15" (* "*") (pointer_declarator "***ppppbVar15" (* "*") (pointer_declarator "**ppppbVar15" (* "*") (pointer_declarator "*ppppbVar15" (* "*") (identifier "ppppbVar15"))))) (; ";")) (declaration "byte ****ppppbVar16;" (type_identifier "byte") (pointer_declarator "****ppppbVar16" (* "*") (pointer_declarator "***ppppbVar16" (* "*") (pointer_declarator "**ppppbVar16" (* "*") (pointer_declarator "*ppppbVar16" (* "*") (identifier "ppppbVar16"))))) (; ";")) (declaration "byte ****ppppbVar17;" (type_identifier "byte") (pointer_declarator "****ppppbVar17" (* "*") (pointer_declarator "***ppppbVar17" (* "*") (pointer_declarator "**ppppbVar17" (* "*") (pointer_declarator "*ppppbVar17" (* "*") (identifier "ppppbVar17"))))) (; ";")) (declaration "byte *****pppppbVar18;" (type_identifier "byte") (pointer_declarator "*****pppppbVar18" (* "*") (pointer_declarator "****pppppbVar18" (* "*") (pointer_declarator "***pppppbVar18" (* "*") (pointer_declarator "**pppppbVar18" (* "*") (pointer_declarator "*pppppbVar18" (* "*") (identifier "pppppbVar18")))))) (; ";")) (declaration "byte *****pppppbVar19;" (type_identifier "byte") (pointer_declarator "*****pppppbVar19" (* "*") (pointer_declarator "****pppppbVar19" (* "*") (pointer_declarator "***pppppbVar19" (* "*") (pointer_declarator "**pppppbVar19" (* "*") (pointer_declarator "*pppppbVar19" (* "*") (identifier "pppppbVar19")))))) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined4 unaff_s0;" (type_identifier "undefined4") (identifier "unaff_s0") (; ";")) (declaration "byte bVar21;" (type_identifier "byte") (identifier "bVar21") (; ";")) (declaration "undefined *unaff_s1;" (type_identifier "undefined") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "undefined4 unaff_s2;" (type_identifier "undefined4") (identifier "unaff_s2") (; ";")) (declaration "byte ***pppbVar22;" (type_identifier "byte") (pointer_declarator "***pppbVar22" (* "*") (pointer_declarator "**pppbVar22" (* "*") (pointer_declarator "*pppbVar22" (* "*") (identifier "pppbVar22")))) (; ";")) (declaration "byte ****unaff_s3;" (type_identifier "byte") (pointer_declarator "****unaff_s3" (* "*") (pointer_declarator "***unaff_s3" (* "*") (pointer_declarator "**unaff_s3" (* "*") (pointer_declarator "*unaff_s3" (* "*") (identifier "unaff_s3"))))) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "byte ***pppbVar24;" (type_identifier "byte") (pointer_declarator "***pppbVar24" (* "*") (pointer_declarator "**pppbVar24" (* "*") (pointer_declarator "*pppbVar24" (* "*") (identifier "pppbVar24")))) (; ";")) (declaration "byte ****ppppbVar25;" (type_identifier "byte") (pointer_declarator "****ppppbVar25" (* "*") (pointer_declarator "***ppppbVar25" (* "*") (pointer_declarator "**ppppbVar25" (* "*") (pointer_declarator "*ppppbVar25" (* "*") (identifier "ppppbVar25"))))) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "code *pcVar27;" (type_identifier "code") (pointer_declarator "*pcVar27" (* "*") (identifier "pcVar27")) (; ";")) (declaration "byte *****pppppbStack_cc;" (type_identifier "byte") (pointer_declarator "*****pppppbStack_cc" (* "*") (pointer_declarator "****pppppbStack_cc" (* "*") (pointer_declarator "***pppppbStack_cc" (* "*") (pointer_declarator "**pppppbStack_cc" (* "*") (pointer_declarator "*pppppbStack_cc" (* "*") (identifier "pppppbStack_cc")))))) (; ";")) (declaration "byte ****ppppbStack_a4;" (type_identifier "byte") (pointer_declarator "****ppppbStack_a4" (* "*") (pointer_declarator "***ppppbStack_a4" (* "*") (pointer_declarator "**ppppbStack_a4" (* "*") (pointer_declarator "*ppppbStack_a4" (* "*") (identifier "ppppbStack_a4"))))) (; ";")) (declaration "byte ****ppppbStack_a0;" (type_identifier "byte") (pointer_declarator "****ppppbStack_a0" (* "*") (pointer_declarator "***ppppbStack_a0" (* "*") (pointer_declarator "**ppppbStack_a0" (* "*") (pointer_declarator "*ppppbStack_a0" (* "*") (identifier "ppppbStack_a0"))))) (; ";")) (declaration "int iStack_9c;" (primitive_type "int") (identifier "iStack_9c") (; ";")) (declaration "undefined4 uStack_98;" (type_identifier "undefined4") (identifier "uStack_98") (; ";")) (declaration "undefined *puStack_94;" (type_identifier "undefined") (pointer_declarator "*puStack_94" (* "*") (identifier "puStack_94")) (; ";")) (declaration "undefined4 uStack_90;" (type_identifier "undefined4") (identifier "uStack_90") (; ";")) (declaration "byte ****ppppbStack_8c;" (type_identifier "byte") (pointer_declarator "****ppppbStack_8c" (* "*") (pointer_declarator "***ppppbStack_8c" (* "*") (pointer_declarator "**ppppbStack_8c" (* "*") (pointer_declarator "*ppppbStack_8c" (* "*") (identifier "ppppbStack_8c"))))) (; ";")) (declaration "undefined *puStack_88;" (type_identifier "undefined") (pointer_declarator "*puStack_88" (* "*") (identifier "puStack_88")) (; ";")) (declaration "byte ****ppppbStack_84;" (type_identifier "byte") (pointer_declarator "****ppppbStack_84" (* "*") (pointer_declarator "***ppppbStack_84" (* "*") (pointer_declarator "**ppppbStack_84" (* "*") (pointer_declarator "*ppppbStack_84" (* "*") (identifier "ppppbStack_84"))))) (; ";")) (declaration "char *pcStack_80;" (primitive_type "char") (pointer_declarator "*pcStack_80" (* "*") (identifier "pcStack_80")) (; ";")) (declaration "byte *****pppppbStack_7c;" (type_identifier "byte") (pointer_declarator "*****pppppbStack_7c" (* "*") (pointer_declarator "****pppppbStack_7c" (* "*") (pointer_declarator "***pppppbStack_7c" (* "*") (pointer_declarator "**pppppbStack_7c" (* "*") (pointer_declarator "*pppppbStack_7c" (* "*") (identifier "pppppbStack_7c")))))) (; ";")) (declaration "int iStack_78;" (primitive_type "int") (identifier "iStack_78") (; ";")) (declaration "code *pcStack_74;" (type_identifier "code") (pointer_declarator "*pcStack_74" (* "*") (identifier "pcStack_74")) (; ";")) (declaration "undefined4 *local_60;" (type_identifier "undefined4") (pointer_declarator "*local_60" (* "*") (identifier "local_60")) (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "byte ****local_58;" (type_identifier "byte") (pointer_declarator "****local_58" (* "*") (pointer_declarator "***local_58" (* "*") (pointer_declarator "**local_58" (* "*") (pointer_declarator "*local_58" (* "*") (identifier "local_58"))))) (; ";")) (declaration "byte ****local_3c;" (type_identifier "byte") (pointer_declarator "****local_3c" (* "*") (pointer_declarator "***local_3c" (* "*") (pointer_declarator "**local_3c" (* "*") (pointer_declarator "*local_3c" (* "*") (identifier "local_3c"))))) (; ";")) (declaration "byte ****local_38;" (type_identifier "byte") (pointer_declarator "****local_38" (* "*") (pointer_declarator "***local_38" (* "*") (pointer_declarator "**local_38" (* "*") (pointer_declarator "*local_38" (* "*") (identifier "local_38"))))) (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar1 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar1 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar1") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "ppppbVar3 = *(byte *****)(param_2 + 0x50);" (assignment_expression "ppppbVar3 = *(byte *****)(param_2 + 0x50)" (identifier "ppppbVar3") (= "=") (pointer_expression "*(byte *****)(param_2 + 0x50)" (* "*") (cast_expression "(byte *****)(param_2 + 0x50)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ba2c" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (if_statement "if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" (if "if") (parenthesized_expression "((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0))" (( "(") (binary_expression "(*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)" (parenthesized_expression "(*param_1 == '\0')" (( "(") (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_2 + 0x38) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x38) == 0" (pointer_expression "*(int *)(param_2 + 0x38)" (* "*") (cast_expression "(int *)(param_2 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x38)" (( "(") (binary_expression "param_2 + 0x38" (identifier "param_2") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    bVar21 = 0;\n    iVar6 = *(int *)(param_2 + 0x4c);\n    unaff_s2 = 0xffffff80;\n    unaff_s3 = *(byte *****)(param_2 + 0x48);\n    iVar20 = *(int *)(param_2 + 0x34);\n    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;\n    ppppbVar15 = param_3;\n    pppppbVar18 = param_4;\n    do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );\n  }" ({ "{") (expression_statement "bVar21 = 0;" (assignment_expression "bVar21 = 0" (identifier "bVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar6 = *(int *)(param_2 + 0x4c);" (assignment_expression "iVar6 = *(int *)(param_2 + 0x4c)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(param_2 + 0x4c)" (* "*") (cast_expression "(int *)(param_2 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x4c)" (( "(") (binary_expression "param_2 + 0x4c" (identifier "param_2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "unaff_s2 = 0xffffff80;" (assignment_expression "unaff_s2 = 0xffffff80" (identifier "unaff_s2") (= "=") (number_literal "0xffffff80")) (; ";")) (expression_statement "unaff_s3 = *(byte *****)(param_2 + 0x48);" (assignment_expression "unaff_s3 = *(byte *****)(param_2 + 0x48)" (identifier "unaff_s3") (= "=") (pointer_expression "*(byte *****)(param_2 + 0x48)" (* "*") (cast_expression "(byte *****)(param_2 + 0x48)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(param_2 + 0x34)" (* "*") (cast_expression "(int *)(param_2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;" (assignment_expression "unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4" (identifier "unaff_s1") (= "=") (binary_expression "PTR_LAB_0015b6f8 + 0x5eb4" (identifier "PTR_LAB_0015b6f8") (+ "+") (number_literal "0x5eb4"))) (; ";")) (expression_statement "ppppbVar15 = param_3;" (assignment_expression "ppppbVar15 = param_3" (identifier "ppppbVar15") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pppppbVar18 = param_4;" (assignment_expression "pppppbVar18 = param_4" (identifier "pppppbVar18") (= "=") (identifier "param_4")) (; ";")) (do_statement "do {\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    } while( true );" (do "do") (compound_statement "{\n      bVar21 = bVar21 | *(byte *)ppppbVar3;\n      local_3c = ppppbVar3;\n      while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }\n      ppppbVar3 = (byte ****)((int)local_3c + 1);\n      bVar21 = *(byte *)local_3c & 0x80;\n    }" ({ "{") (expression_statement "bVar21 = bVar21 | *(byte *)ppppbVar3;" (assignment_expression "bVar21 = bVar21 | *(byte *)ppppbVar3" (identifier "bVar21") (= "=") (binary_expression "bVar21 | *(byte *)ppppbVar3" (identifier "bVar21") (| "|") (pointer_expression "*(byte *)ppppbVar3" (* "*") (cast_expression "(byte *)ppppbVar3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar3"))))) (; ";")) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" (identifier "local_3c") (= "=") (identifier "ppppbVar3")) (; ";")) (while_statement "while (bVar21 == 0) {\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" (while "while") (parenthesized_expression "(bVar21 == 0)" (( "(") (binary_expression "bVar21 == 0" (identifier "bVar21") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        ppppbVar13 = (byte ****)((int)local_3c + 1);\n        unaff_s0 = 0;\n        if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }\n        iVar20 = FUN_000b5eb4(param_2);\n        if (iVar20 != 0) goto LAB_000b6244;\n        iVar20 = *(int *)(param_2 + 0x34);\n        bVar21 = *(byte *)local_3c;\n      }" ({ "{") (expression_statement "ppppbVar13 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar13 = (byte ****)((int)local_3c + 1)" (identifier "ppppbVar13") (= "=") (cast_expression "(byte ****)((int)local_3c + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)local_3c + 1)" (( "(") (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "unaff_s0 = 0;" (assignment_expression "unaff_s0 = 0" (identifier "unaff_s0") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" (if "if") (parenthesized_expression "((iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))))" (( "(") (binary_expression "(iVar20 == 0) ||\n           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))" (( "(") (binary_expression "local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" (identifier "local_3c") (< "<") (cast_expression "(byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30))" (( "(") (binary_expression "*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)" (pointer_expression "*(int *)(param_2 + 0x28)" (* "*") (cast_expression "(int *)(param_2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x28)" (( "(") (binary_expression "param_2 + 0x28" (identifier "param_2") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_2 + 0x30)" (* "*") (cast_expression "(int *)(param_2 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x30)" (( "(") (binary_expression "param_2 + 0x30" (identifier "param_2") (+ "+") (number_literal "0x30")) () ")"))))) () ")")))) () ")"))) () ")")) (compound_statement "{\n          if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }\n          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);\n          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;\n          ppppbVar3 = (byte ****)((int)local_3c + 2);\n          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;\n          goto LAB_000b637c;\n        }" ({ "{") (if_statement "if (param_3 != (byte ****)0x0) {\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" (if "if") (parenthesized_expression "(param_3 != (byte ****)0x0)" (( "(") (binary_expression "param_3 != (byte ****)0x0" (identifier "param_3") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *param_3 = *(byte ****)(param_2 + 0x50);\n            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));\n          }" ({ "{") (expression_statement "*param_3 = *(byte ****)(param_2 + 0x50);" (assignment_expression "*param_3 = *(byte ****)(param_2 + 0x50)" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (pointer_expression "*(byte ****)(param_2 + 0x50)" (* "*") (cast_expression "(byte ****)(param_2 + 0x50)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));" (assignment_expression "*param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)))" (( "(") (binary_expression "(int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50))" (cast_expression "(int)ppppbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar13")) (+ "+") (parenthesized_expression "(-1 - *(int *)(param_2 + 0x50))" (( "(") (binary_expression "-1 - *(int *)(param_2 + 0x50)" (number_literal "-1") (- "-") (pointer_expression "*(int *)(param_2 + 0x50)" (* "*") (cast_expression "(int *)(param_2 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")"))))) () ")"))) () ")")))) (; ";")) (} "}"))) (expression_statement "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);" (assignment_expression "unaff_s3 = (byte ****)((int)unaff_s3 + iVar6)" (identifier "unaff_s3") (= "=") (cast_expression "(byte ****)((int)unaff_s3 + iVar6)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)unaff_s3 + iVar6)" (( "(") (binary_expression "(int)unaff_s3 + iVar6" (cast_expression "(int)unaff_s3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s3")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (if_statement "if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;" (if "if") (parenthesized_expression "(unaff_s3 <= ppppbVar13)" (( "(") (binary_expression "unaff_s3 <= ppppbVar13" (identifier "unaff_s3") (<= "<=") (identifier "ppppbVar13")) () ")")) (goto_statement "goto LAB_000b6384;" (goto "goto") (statement_identifier "LAB_000b6384") (; ";"))) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 2);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 2)" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)((int)local_3c + 2)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)local_3c + 2)" (( "(") (binary_expression "(int)local_3c + 2" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;" (if "if") (parenthesized_expression "(*(byte *)((int)local_3c + 1) != 0)" (( "(") (binary_expression "*(byte *)((int)local_3c + 1) != 0" (pointer_expression "*(byte *)((int)local_3c + 1)" (* "*") (cast_expression "(byte *)((int)local_3c + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_3c + 1)" (( "(") (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (+ "+") (number_literal "1")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b63a4;" (goto "goto") (statement_identifier "LAB_000b63a4") (; ";"))) (goto_statement "goto LAB_000b637c;" (goto "goto") (statement_identifier "LAB_000b637c") (; ";")) (} "}"))) (expression_statement "iVar20 = FUN_000b5eb4(param_2);" (assignment_expression "iVar20 = FUN_000b5eb4(param_2)" (identifier "iVar20") (= "=") (call_expression "FUN_000b5eb4(param_2)" (identifier "FUN_000b5eb4") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar20 != 0) goto LAB_000b6244;" (if "if") (parenthesized_expression "(iVar20 != 0)" (( "(") (binary_expression "iVar20 != 0" (identifier "iVar20") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b6244;" (goto "goto") (statement_identifier "LAB_000b6244") (; ";"))) (expression_statement "iVar20 = *(int *)(param_2 + 0x34);" (assignment_expression "iVar20 = *(int *)(param_2 + 0x34)" (identifier "iVar20") (= "=") (pointer_expression "*(int *)(param_2 + 0x34)" (* "*") (cast_expression "(int *)(param_2 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x34)" (( "(") (binary_expression "param_2 + 0x34" (identifier "param_2") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "bVar21 = *(byte *)local_3c;" (assignment_expression "bVar21 = *(byte *)local_3c" (identifier "bVar21") (= "=") (pointer_expression "*(byte *)local_3c" (* "*") (cast_expression "(byte *)local_3c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c")))) (; ";")) (} "}"))) (expression_statement "ppppbVar3 = (byte ****)((int)local_3c + 1);" (assignment_expression "ppppbVar3 = (byte ****)((int)local_3c + 1)" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)((int)local_3c + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)local_3c + 1)" (( "(") (binary_expression "(int)local_3c + 1" (cast_expression "(int)local_3c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_3c")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar21 = *(byte *)local_3c & 0x80;" (assignment_expression "bVar21 = *(byte *)local_3c & 0x80" (identifier "bVar21") (= "=") (binary_expression "*(byte *)local_3c & 0x80" (pointer_expression "*(byte *)local_3c" (* "*") (cast_expression "(byte *)local_3c" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_3c"))) (& "&") (number_literal "0x80"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "local_38 = (byte ****)((uint)local_38 & 0xffffff);" (assignment_expression "local_38 = (byte ****)((uint)local_38 & 0xffffff)" (identifier "local_38") (= "=") (cast_expression "(byte ****)((uint)local_38 & 0xffffff)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((uint)local_38 & 0xffffff)" (( "(") (binary_expression "(uint)local_38 & 0xffffff" (cast_expression "(uint)local_38" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_38")) (& "&") (number_literal "0xffffff")) () ")")))) (; ";")) (if_statement "if (param_3 != (byte ****)0x0) {\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" (if "if") (parenthesized_expression "(param_3 != (byte ****)0x0)" (( "(") (binary_expression "param_3 != (byte ****)0x0" (identifier "param_3") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_3 = (byte ***)ppppbVar3;\n    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);\n  }" ({ "{") (expression_statement "*param_3 = (byte ***)ppppbVar3;" (assignment_expression "*param_3 = (byte ***)ppppbVar3" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (cast_expression "(byte ***)ppppbVar3" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppbVar3"))) (; ";")) (expression_statement "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);" (assignment_expression "*param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(byte ****)(*(int *)(param_2 + 0x54) + -1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0x54) + -1)" (( "(") (binary_expression "*(int *)(param_2 + 0x54) + -1" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (} "}"))) (expression_statement "local_58 = (byte ****)&local_38;" (assignment_expression "local_58 = (byte ****)&local_38" (identifier "local_58") (= "=") (cast_expression "(byte ****)&local_38" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&local_38" (& "&") (identifier "local_38")))) (; ";")) (expression_statement "ppppbVar15 = *(byte *****)(param_2 + 0x4c);" (assignment_expression "ppppbVar15 = *(byte *****)(param_2 + 0x4c)" (identifier "ppppbVar15") (= "=") (pointer_expression "*(byte *****)(param_2 + 0x4c)" (* "*") (cast_expression "(byte *****)(param_2 + 0x4c)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(param_2 + 0x4c)" (( "(") (binary_expression "param_2 + 0x4c" (identifier "param_2") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "local_60 = (undefined4 *)(param_2 + 0x58);" (assignment_expression "local_60 = (undefined4 *)(param_2 + 0x58)" (identifier "local_60") (= "=") (cast_expression "(undefined4 *)(param_2 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")")))) (; ";")) (expression_statement "ppppbVar13 = *(byte *****)(param_2 + 0x48);" (assignment_expression "ppppbVar13 = *(byte *****)(param_2 + 0x48)" (identifier "ppppbVar13") (= "=") (pointer_expression "*(byte *****)(param_2 + 0x48)" (* "*") (cast_expression "(byte *****)(param_2 + 0x48)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(param_2 + 0x48)" (( "(") (binary_expression "param_2 + 0x48" (identifier "param_2") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "local_5c = param_2 + 0x54;" (assignment_expression "local_5c = param_2 + 0x54" (identifier "local_5c") (= "=") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54"))) (; ";")) (expression_statement "pppppbVar18 = &local_3c;" (assignment_expression "pppppbVar18 = &local_3c" (identifier "pppppbVar18") (= "=") (pointer_expression "&local_3c" (& "&") (identifier "local_3c"))) (; ";")) (expression_statement "local_3c = ppppbVar3;" (assignment_expression "local_3c = ppppbVar3" (identifier "local_3c") (= "=") (identifier "ppppbVar3")) (; ";")) (expression_statement "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);" (call_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6c0 + -0x3268))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6c0 + -0x3268)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6c0 + -0x3268)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6c0 + -0x3268)" (( "(") (binary_expression "PTR_LAB_0015b6c0 + -0x3268" (identifier "PTR_LAB_0015b6c0") (+ "+") (number_literal "-0x3268")) () ")")))) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if (local_38._0_1_ == '\0') {\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }\n  else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" (if "if") (parenthesized_expression "(local_38._0_1_ == '\0')" (( "(") (binary_expression "local_38._0_1_ == '\0'" (field_expression "local_38._0_1_" (identifier "local_38") (. ".") (field_identifier "_0_1_")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    iVar20 = 0;\n    *(byte *****)(param_2 + 0x50) = local_3c;\n  }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(byte *****)(param_2 + 0x50) = local_3c;" (assignment_expression "*(byte *****)(param_2 + 0x50) = local_3c" (pointer_expression "*(byte *****)(param_2 + 0x50)" (* "*") (cast_expression "(byte *****)(param_2 + 0x50)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" (else "else") (compound_statement "{\n    iVar20 = 0;\n    *(undefined4 *)(param_2 + 0x50) = 0;\n  }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_000b6244;" (goto "goto") (statement_identifier "LAB_000b6244") (; ";")) (labeled_statement "LAB_000b6384:\n  *(undefined4 *)(param_2 + 0x50) = 0;" (statement_identifier "LAB_000b6384") (: ":") (expression_statement "*(undefined4 *)(param_2 + 0x50) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x50) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" (identifier "local_3c") (= "=") (identifier "ppppbVar13")) (; ";")) (goto_statement "goto LAB_000b6244;" (goto "goto") (statement_identifier "LAB_000b6244") (; ";")) (while_statement "while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" (while "while") (parenthesized_expression "(ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0)" (( "(") (comma_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0" (assignment_expression "ppppbVar3 = (byte ****)((int)ppppbVar13 + 1)" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)((int)ppppbVar13 + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar13 + 1)" (( "(") (binary_expression "(int)ppppbVar13 + 1" (cast_expression "(int)ppppbVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar13")) (+ "+") (number_literal "1")) () ")")))) (, ",") (binary_expression "*(byte *)ppppbVar13 == 0" (pointer_expression "*(byte *)ppppbVar13" (* "*") (cast_expression "(byte *)ppppbVar13" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppppbVar13"))) (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_000b637c:\n    ppppbVar13 = ppppbVar3;\n    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;\n  }" ({ "{") (labeled_statement "LAB_000b637c:\n    ppppbVar13 = ppppbVar3;" (statement_identifier "LAB_000b637c") (: ":") (expression_statement "ppppbVar13 = ppppbVar3;" (assignment_expression "ppppbVar13 = ppppbVar3" (identifier "ppppbVar13") (= "=") (identifier "ppppbVar3")) (; ";"))) (if_statement "if (unaff_s3 == ppppbVar13) goto LAB_000b6384;" (if "if") (parenthesized_expression "(unaff_s3 == ppppbVar13)" (( "(") (binary_expression "unaff_s3 == ppppbVar13" (identifier "unaff_s3") (== "==") (identifier "ppppbVar13")) () ")")) (goto_statement "goto LAB_000b6384;" (goto "goto") (statement_identifier "LAB_000b6384") (; ";"))) (} "}"))) (labeled_statement "LAB_000b63a4:\n  ppppbVar15 = (byte ****)&DAT_0000000a;" (statement_identifier "LAB_000b63a4") (: ":") (expression_statement "ppppbVar15 = (byte ****)&DAT_0000000a;" (assignment_expression "ppppbVar15 = (byte ****)&DAT_0000000a" (identifier "ppppbVar15") (= "=") (cast_expression "(byte ****)&DAT_0000000a" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&DAT_0000000a" (& "&") (identifier "DAT_0000000a")))) (; ";"))) (expression_statement "local_3c = ppppbVar13;" (assignment_expression "local_3c = ppppbVar13" (identifier "local_3c") (= "=") (identifier "ppppbVar13")) (; ";")) (expression_statement "iVar20 = FUN_000b5f80(param_2);" (assignment_expression "iVar20 = FUN_000b5f80(param_2)" (identifier "iVar20") (= "=") (call_expression "FUN_000b5f80(param_2)" (identifier "FUN_000b5f80") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar20 == 0) {\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }\n  else {\n    iVar20 = 0;\n  }" (if "if") (parenthesized_expression "(iVar20 == 0)" (( "(") (binary_expression "iVar20 == 0" (identifier "iVar20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    ppppbVar3 = local_3c;\n    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);\n    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);\n    ppppbVar13 = local_38;\n    if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }\n  }" ({ "{") (expression_statement "ppppbVar3 = local_3c;" (assignment_expression "ppppbVar3 = local_3c" (identifier "ppppbVar3") (= "=") (identifier "local_3c")) (; ";")) (expression_statement "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);" (assignment_expression "iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" (identifier "iVar6") (= "=") (call_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b65c + 0xf74))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b65c + 0xf74)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b65c + 0xf74)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b65c + 0xf74)" (( "(") (binary_expression "PTR_LAB_0015b65c + 0xf74" (identifier "PTR_LAB_0015b65c") (+ "+") (number_literal "0xf74")) () ")")))) () ")")) (argument_list "(local_3c,&local_38)" (( "(") (identifier "local_3c") (, ",") (pointer_expression "&local_38" (& "&") (identifier "local_38")) () ")")))) (; ";")) (expression_statement "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);" (assignment_expression "*(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6)" (pointer_expression "*(byte **)(param_2 + 0x50)" (* "*") (cast_expression "(byte **)(param_2 + 0x50)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x50)" (( "(") (binary_expression "param_2 + 0x50" (identifier "param_2") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (cast_expression "(byte *)((int)ppppbVar3 + iVar6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppppbVar3 + iVar6)" (( "(") (binary_expression "(int)ppppbVar3 + iVar6" (cast_expression "(int)ppppbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar3")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "ppppbVar13 = local_38;" (assignment_expression "ppppbVar13 = local_38" (identifier "ppppbVar13") (= "=") (identifier "local_38")) (; ";")) (if_statement "if (*param_1 == '\0') {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }\n    else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" (if "if") (parenthesized_expression "(*param_1 == '\0')" (( "(") (binary_expression "*param_1 == '\0'" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 + local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));\n    }" ({ "{") (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_2 + 0x5c)" (* "*") (cast_expression "(uint *)(param_2 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar4 = uVar11 + local_34;" (assignment_expression "uVar4 = uVar11 + local_34" (identifier "uVar4") (= "=") (binary_expression "uVar11 + local_34" (identifier "uVar11") (+ "+") (identifier "local_34"))) (; ";")) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" (* "*") (cast_expression "(uint *)(param_2 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));" (assignment_expression "*(byte **)(param_2 + 0x58) =\n           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" (pointer_expression "*(byte **)(param_2 + 0x58)" (* "*") (cast_expression "(byte **)(param_2 + 0x58)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (cast_expression "(byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58))" (( "(") (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58)" (binary_expression "(int)local_38 + (uint)(uVar4 < uVar11)" (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38")) (+ "+") (call_expression "(uint)(uVar4 < uVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 < uVar11)" (( "(") (binary_expression "uVar4 < uVar11" (identifier "uVar4") (< "<") (identifier "uVar11")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" (else "else") (compound_statement "{\n      uVar11 = *(uint *)(param_2 + 0x5c);\n      uVar4 = uVar11 - local_34;\n      *(uint *)(param_2 + 0x5c) = uVar4;\n      *(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);\n    }" ({ "{") (expression_statement "uVar11 = *(uint *)(param_2 + 0x5c);" (assignment_expression "uVar11 = *(uint *)(param_2 + 0x5c)" (identifier "uVar11") (= "=") (pointer_expression "*(uint *)(param_2 + 0x5c)" (* "*") (cast_expression "(uint *)(param_2 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "uVar4 = uVar11 - local_34;" (assignment_expression "uVar4 = uVar11 - local_34" (identifier "uVar4") (= "=") (binary_expression "uVar11 - local_34" (identifier "uVar11") (- "-") (identifier "local_34"))) (; ";")) (expression_statement "*(uint *)(param_2 + 0x5c) = uVar4;" (assignment_expression "*(uint *)(param_2 + 0x5c) = uVar4" (pointer_expression "*(uint *)(param_2 + 0x5c)" (* "*") (cast_expression "(uint *)(param_2 + 0x5c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x5c)" (( "(") (binary_expression "param_2 + 0x5c" (identifier "param_2") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "uVar4")) (; ";")) (expression_statement "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);" (assignment_expression "*(uint *)(param_2 + 0x58) =\n           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (pointer_expression "*(uint *)(param_2 + 0x58)" (* "*") (cast_expression "(uint *)(param_2 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (binary_expression "(*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4)" (parenthesized_expression "(*(int *)(param_2 + 0x58) - (int)local_38)" (( "(") (binary_expression "*(int *)(param_2 + 0x58) - (int)local_38" (pointer_expression "*(int *)(param_2 + 0x58)" (* "*") (cast_expression "(int *)(param_2 + 0x58)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")")))) (- "-") (cast_expression "(int)local_38" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_38"))) () ")")) (- "-") (call_expression "(uint)(uVar11 < uVar4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar11 < uVar4)" (( "(") (binary_expression "uVar11 < uVar4" (identifier "uVar11") (< "<") (identifier "uVar4")) () ")"))))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    iVar20 = 0;\n  }" (else "else") (compound_statement "{\n    iVar20 = 0;\n  }" ({ "{") (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" (identifier "iVar20") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_000b6244:\n  if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" (statement_identifier "LAB_000b6244") (: ":") (if_statement "if (local_2c == *(int *)puVar1) {\n    return iVar20;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar1)" (( "(") (binary_expression "local_2c == *(int *)puVar1" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar1" (* "*") (cast_expression "(int *)puVar1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar1")))) () ")")) (compound_statement "{\n    return iVar20;\n  }" ({ "{") (return_statement "return iVar20;" (return "return") (identifier "iVar20") (; ";")) (} "}")))) (expression_statement "pcVar27 = FUN_000b6454;" (assignment_expression "pcVar27 = FUN_000b6454" (identifier "pcVar27") (= "=") (identifier "FUN_000b6454")) (; ";")) (expression_statement "iVar20 = local_2c;" (assignment_expression "iVar20 = local_2c" (identifier "iVar20") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar26 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar26 = PTR___stack_chk_fail_0015ba10" (identifier "puVar26") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar2 = local_60;" (assignment_expression "puVar2 = local_60" (identifier "puVar2") (= "=") (identifier "local_60")) (; ";")) (expression_statement "piVar10 = *(int **)(puVar26 + 0xa55d8);" (assignment_expression "piVar10 = *(int **)(puVar26 + 0xa55d8)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(puVar26 + 0xa55d8)" (* "*") (cast_expression "(int **)(puVar26 + 0xa55d8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0xa55d8)" (( "(") (binary_expression "puVar26 + 0xa55d8" (identifier "puVar26") (+ "+") (number_literal "0xa55d8")) () ")"))))) (; ";")) (expression_statement "puStack_88 = puVar1;" (assignment_expression "puStack_88 = puVar1" (identifier "puStack_88") (= "=") (identifier "puVar1")) (; ";")) (expression_statement "iStack_9c = *piVar10;" (assignment_expression "iStack_9c = *piVar10" (identifier "iStack_9c") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "ppppbVar3 = (byte ****)ppppbVar13[2];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar13[2]" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)ppppbVar13[2]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar13[2]" (identifier "ppppbVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (*(char *)(iVar20 + 0xeb) == '\0') {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }\n  else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar20 + 0xeb) == '\0')" (( "(") (binary_expression "*(char *)(iVar20 + 0xeb) == '\0'" (pointer_expression "*(char *)(iVar20 + 0xeb)" (* "*") (cast_expression "(char *)(iVar20 + 0xeb)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xeb)" (( "(") (binary_expression "iVar20 + 0xeb" (identifier "iVar20") (+ "+") (number_literal "0xeb")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);\n  }" ({ "{") (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" (identifier "pppppbStack_cc") (= "=") (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x26f0)" (( "(") (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x26f0" (pointer_expression "*(int *)(puVar26 + 0xa526c)" (* "*") (cast_expression "(int *)(puVar26 + 0xa526c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xa526c)" (( "(") (binary_expression "puVar26 + 0xa526c" (identifier "puVar26") (+ "+") (number_literal "0xa526c")) () ")")))) (+ "+") (number_literal "-0x26f0")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" (else "else") (compound_statement "{\n    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);\n  }" ({ "{") (expression_statement "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);" (assignment_expression "pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" (identifier "pppppbStack_cc") (= "=") (cast_expression "(byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674)" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (parenthesized_expression "(*(int *)(puVar26 + 0xa526c) + -0x2674)" (( "(") (binary_expression "*(int *)(puVar26 + 0xa526c) + -0x2674" (pointer_expression "*(int *)(puVar26 + 0xa526c)" (* "*") (cast_expression "(int *)(puVar26 + 0xa526c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xa526c)" (( "(") (binary_expression "puVar26 + 0xa526c" (identifier "puVar26") (+ "+") (number_literal "0xa526c")) () ")")))) (+ "+") (number_literal "-0x2674")) () ")")))) (; ";")) (} "}")))) (expression_statement "ppppbVar14 = ppppbVar13;" (assignment_expression "ppppbVar14 = ppppbVar13" (identifier "ppppbVar14") (= "=") (identifier "ppppbVar13")) (; ";")) (expression_statement "ppppbVar16 = ppppbVar15;" (assignment_expression "ppppbVar16 = ppppbVar15" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar15")) (; ";")) (expression_statement "pppppbVar19 = pppppbVar18;" (assignment_expression "pppppbVar19 = pppppbVar18" (identifier "pppppbVar19") (= "=") (identifier "pppppbVar18")) (; ";")) (expression_statement "uStack_98 = unaff_s0;" (assignment_expression "uStack_98 = unaff_s0" (identifier "uStack_98") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "puStack_94 = unaff_s1;" (assignment_expression "puStack_94 = unaff_s1" (identifier "puStack_94") (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "uStack_90 = unaff_s2;" (assignment_expression "uStack_90 = unaff_s2" (identifier "uStack_90") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "ppppbStack_8c = unaff_s3;" (assignment_expression "ppppbStack_8c = unaff_s3" (identifier "ppppbStack_8c") (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "ppppbStack_84 = param_3;" (assignment_expression "ppppbStack_84 = param_3" (identifier "ppppbStack_84") (= "=") (identifier "param_3")) (; ";")) (expression_statement "pcStack_80 = param_1;" (assignment_expression "pcStack_80 = param_1" (identifier "pcStack_80") (= "=") (identifier "param_1")) (; ";")) (expression_statement "pppppbStack_7c = param_4;" (assignment_expression "pppppbStack_7c = param_4" (identifier "pppppbStack_7c") (= "=") (identifier "param_4")) (; ";")) (expression_statement "iStack_78 = param_2;" (assignment_expression "iStack_78 = param_2" (identifier "iStack_78") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcStack_74 = pcVar27;" (assignment_expression "pcStack_74 = pcVar27" (identifier "pcStack_74") (= "=") (identifier "pcVar27")) (; ";")) (if_statement "if (ppppbVar3 != (byte ****)0x0) {\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" (if "if") (parenthesized_expression "(ppppbVar3 != (byte ****)0x0)" (( "(") (binary_expression "ppppbVar3 != (byte ****)0x0" (identifier "ppppbVar3") (!= "!=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    pppbVar5 = *ppppbVar13;\n    ppppbVar14 = (byte ****)*pppbVar5;\n    if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }\n  }" ({ "{") (expression_statement "pppbVar5 = *ppppbVar13;" (assignment_expression "pppbVar5 = *ppppbVar13" (identifier "pppbVar5") (= "=") (pointer_expression "*ppppbVar13" (* "*") (identifier "ppppbVar13"))) (; ";")) (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)*pppbVar5" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*pppbVar5" (* "*") (identifier "pppbVar5")))) (; ";")) (if_statement "if (ppppbVar14[0x14] != (byte ***)0x0) {\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" (if "if") (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" (( "(") (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" (identifier "ppppbVar14") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar23 = *(int *)(puVar26 + 0xa52a4);\n      iVar6 = *(int *)(puVar26 + 0xa5208);\n      iVar7 = *(int *)(puVar26 + 0xa5208);\n      while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }\n      goto LAB_000b65d4;\n    }" ({ "{") (expression_statement "iVar23 = *(int *)(puVar26 + 0xa52a4);" (assignment_expression "iVar23 = *(int *)(puVar26 + 0xa52a4)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(puVar26 + 0xa52a4)" (* "*") (cast_expression "(int *)(puVar26 + 0xa52a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xa52a4)" (( "(") (binary_expression "puVar26 + 0xa52a4" (identifier "puVar26") (+ "+") (number_literal "0xa52a4")) () ")"))))) (; ";")) (expression_statement "iVar6 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar6 = *(int *)(puVar26 + 0xa5208)" (identifier "iVar6") (= "=") (pointer_expression "*(int *)(puVar26 + 0xa5208)" (* "*") (cast_expression "(int *)(puVar26 + 0xa5208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xa5208)" (( "(") (binary_expression "puVar26 + 0xa5208" (identifier "puVar26") (+ "+") (number_literal "0xa5208")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar26 + 0xa5208);" (assignment_expression "iVar7 = *(int *)(puVar26 + 0xa5208)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar26 + 0xa5208)" (* "*") (cast_expression "(int *)(puVar26 + 0xa5208)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar26 + 0xa5208)" (( "(") (binary_expression "puVar26 + 0xa5208" (identifier "puVar26") (+ "+") (number_literal "0xa5208")) () ")"))))) (; ";")) (while_statement "while( true ) {\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        pppbVar22 = ppppbVar14[0x16];\n        pppbVar24 = ppppbVar14[0x17];\n        ppppbVar16 = (byte ****)&ppppbStack_a4;\n        pppppbVar19 = &ppppbStack_a0;\n        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n        if (iVar8 != 0) break;\n        if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }\n        ppppbVar14 = ppppbVar3;\n        pppppbVar19 = pppppbStack_cc;\n        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);\n        ppppbVar25 = ppppbStack_a4;\n        ppppbVar16 = ppppbStack_a0;\n        if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }\n        pppbVar12 = ppppbVar13[6];\n        if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;\nLAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;\n      }" ({ "{") (expression_statement "pppbVar22 = ppppbVar14[0x16];" (assignment_expression "pppbVar22 = ppppbVar14[0x16]" (identifier "pppbVar22") (= "=") (subscript_expression "ppppbVar14[0x16]" (identifier "ppppbVar14") ([ "[") (number_literal "0x16") (] "]"))) (; ";")) (expression_statement "pppbVar24 = ppppbVar14[0x17];" (assignment_expression "pppbVar24 = ppppbVar14[0x17]" (identifier "pppbVar24") (= "=") (subscript_expression "ppppbVar14[0x17]" (identifier "ppppbVar14") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (expression_statement "ppppbVar16 = (byte ****)&ppppbStack_a4;" (assignment_expression "ppppbVar16 = (byte ****)&ppppbStack_a4" (identifier "ppppbVar16") (= "=") (cast_expression "(byte ****)&ppppbStack_a4" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "&ppppbStack_a4" (& "&") (identifier "ppppbStack_a4")))) (; ";")) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" (identifier "pppppbVar19") (= "=") (pointer_expression "&ppppbStack_a0" (& "&") (identifier "ppppbStack_a0"))) (; ";")) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (identifier "iVar8") (= "=") (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" (( "(") (pointer_expression "*(code *)(iVar23 + 0x6168)" (* "*") (cast_expression "(code *)(iVar23 + 0x6168)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x6168)" (( "(") (binary_expression "iVar23 + 0x6168" (identifier "iVar23") (+ "+") (number_literal "0x6168")) () ")")))) () ")")) (argument_list "(iVar20 + 0xeb)" (( "(") (binary_expression "iVar20 + 0xeb" (identifier "iVar20") (+ "+") (number_literal "0xeb")) () ")")))) (; ";")) (if_statement "if (iVar8 != 0) break;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((int)ppppbVar3 < 2) {\n          ppppbVar16 = (byte ****)0x1;\n        }\n        else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" (if "if") (parenthesized_expression "((int)ppppbVar3 < 2)" (( "(") (binary_expression "(int)ppppbVar3 < 2" (cast_expression "(int)ppppbVar3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar3")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          ppppbVar16 = (byte ****)0x1;\n        }" ({ "{") (expression_statement "ppppbVar16 = (byte ****)0x1;" (assignment_expression "ppppbVar16 = (byte ****)0x1" (identifier "ppppbVar16") (= "=") (cast_expression "(byte ****)0x1" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (} "}")) (else_clause "else {\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" (else "else") (compound_statement "{\n          ppppbVar14 = (byte ****)pppbVar5[1];\n          ppppbVar25 = (byte ****)0x1;\n          ppppbVar16 = ppppbVar25;\n          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }\n        }" ({ "{") (expression_statement "ppppbVar14 = (byte ****)pppbVar5[1];" (assignment_expression "ppppbVar14 = (byte ****)pppbVar5[1]" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)pppbVar5[1]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "pppbVar5[1]" (identifier "pppbVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" (identifier "ppppbVar25") (= "=") (cast_expression "(byte ****)0x1" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "ppppbVar16 = ppppbVar25;" (assignment_expression "ppppbVar16 = ppppbVar25" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar25")) (; ";")) (if_statement "if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" (if "if") (parenthesized_expression "((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22))" (( "(") (binary_expression "(ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)" (parenthesized_expression "(ppppbVar14[0x14] != (byte ***)0x0)" (( "(") (binary_expression "ppppbVar14[0x14] != (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" (identifier "ppppbVar14") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(ppppbVar14[0x16] == pppbVar22)" (( "(") (binary_expression "ppppbVar14[0x16] == pppbVar22" (subscript_expression "ppppbVar14[0x16]" (identifier "ppppbVar14") ([ "[") (number_literal "0x16") (] "]")) (== "==") (identifier "pppbVar22")) () ")"))) () ")")) (compound_statement "{\n            pppbVar12 = pppbVar5 + 2;\n            pppbVar9 = ppppbVar14[0x17];\n            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }\n          }" ({ "{") (expression_statement "pppbVar12 = pppbVar5 + 2;" (assignment_expression "pppbVar12 = pppbVar5 + 2" (identifier "pppbVar12") (= "=") (binary_expression "pppbVar5 + 2" (identifier "pppbVar5") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" (identifier "pppbVar9") (= "=") (subscript_expression "ppppbVar14[0x17]" (identifier "ppppbVar14") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (while_statement "while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" (while "while") (parenthesized_expression "(ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24)" (( "(") (comma_expression "ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24" (assignment_expression "ppppbVar16 = ppppbVar25" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar25")) (, ",") (binary_expression "pppbVar9 == pppbVar24" (identifier "pppbVar9") (== "==") (identifier "pppbVar24"))) () ")")) (compound_statement "{\n              pppppbVar19 = (byte *****)0x0;\n              ppppbVar16 = (byte ****)0x0;\n              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);\n              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);\n              if (iVar8 != 0) goto LAB_000b65d4;\n              ppppbVar16 = ppppbVar3;\n              if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;\n              pppbVar9 = ppppbVar14[0x17];\n            }" ({ "{") (expression_statement "pppppbVar19 = (byte *****)0x0;" (assignment_expression "pppppbVar19 = (byte *****)0x0" (identifier "pppppbVar19") (= "=") (cast_expression "(byte *****)0x0" (( "(") (type_descriptor "byte *****" (type_identifier "byte") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppppbVar16 = (byte ****)0x0;" (assignment_expression "ppppbVar16 = (byte ****)0x0" (identifier "ppppbVar16") (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);" (assignment_expression "iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (identifier "iVar8") (= "=") (call_expression "(*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(iVar23 + 0x6168))" (( "(") (pointer_expression "*(code *)(iVar23 + 0x6168)" (* "*") (cast_expression "(code *)(iVar23 + 0x6168)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0x6168)" (( "(") (binary_expression "iVar23 + 0x6168" (identifier "iVar23") (+ "+") (number_literal "0x6168")) () ")")))) () ")")) (argument_list "(iVar20 + 0xeb)" (( "(") (binary_expression "iVar20 + 0xeb" (identifier "iVar20") (+ "+") (number_literal "0xeb")) () ")")))) (; ";")) (expression_statement "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);" (assignment_expression "ppppbVar25 = (byte ****)((int)ppppbVar25 + 1)" (identifier "ppppbVar25") (= "=") (cast_expression "(byte ****)((int)ppppbVar25 + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar25 + 1)" (( "(") (binary_expression "(int)ppppbVar25 + 1" (cast_expression "(int)ppppbVar25" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar25")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar8 != 0) goto LAB_000b65d4;" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000b65d4;" (goto "goto") (statement_identifier "LAB_000b65d4") (; ";"))) (expression_statement "ppppbVar16 = ppppbVar3;" (assignment_expression "ppppbVar16 = ppppbVar3" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar3")) (; ";")) (if_statement "if (((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;" (if "if") (parenthesized_expression "(((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22))" (( "(") (binary_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)) ||\n                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" (parenthesized_expression "((ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0))" (( "(") (binary_expression "(ppppbVar3 == ppppbVar25) ||\n                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" (parenthesized_expression "(ppppbVar3 == ppppbVar25)" (( "(") (binary_expression "ppppbVar3 == ppppbVar25" (identifier "ppppbVar3") (== "==") (identifier "ppppbVar25")) () ")")) (|| "||") (parenthesized_expression "(ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0)" (( "(") (comma_expression "ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar12" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)*pppbVar12" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*pppbVar12" (* "*") (identifier "pppbVar12")))) (, ",") (comma_expression "ppppbVar16 = ppppbVar25,\n                  ppppbVar14[0x14] == (byte ***)0x0" (assignment_expression "ppppbVar16 = ppppbVar25" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar25")) (, ",") (binary_expression "ppppbVar14[0x14] == (byte ***)0x0" (subscript_expression "ppppbVar14[0x14]" (identifier "ppppbVar14") ([ "[") (number_literal "0x14") (] "]")) (== "==") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)" (( "(") (comma_expression "pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22" (assignment_expression "pppbVar12 = pppbVar12 + 1" (identifier "pppbVar12") (= "=") (binary_expression "pppbVar12 + 1" (identifier "pppbVar12") (+ "+") (number_literal "1"))) (, ",") (binary_expression "ppppbVar14[0x16] != pppbVar22" (subscript_expression "ppppbVar14[0x16]" (identifier "ppppbVar14") ([ "[") (number_literal "0x16") (] "]")) (!= "!=") (identifier "pppbVar22"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pppbVar9 = ppppbVar14[0x17];" (assignment_expression "pppbVar9 = ppppbVar14[0x17]" (identifier "pppbVar9") (= "=") (subscript_expression "ppppbVar14[0x17]" (identifier "ppppbVar14") ([ "[") (number_literal "0x17") (] "]"))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (expression_statement "ppppbVar14 = ppppbVar3;" (assignment_expression "ppppbVar14 = ppppbVar3" (identifier "ppppbVar14") (= "=") (identifier "ppppbVar3")) (; ";")) (expression_statement "pppppbVar19 = pppppbStack_cc;" (assignment_expression "pppppbVar19 = pppppbStack_cc" (identifier "pppppbVar19") (= "=") (identifier "pppppbStack_cc")) (; ";")) (expression_statement "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);" (call_expression "(*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16)" (parenthesized_expression "(*(code *)(iVar6 + 0x2944))" (( "(") (pointer_expression "*(code *)(iVar6 + 0x2944)" (* "*") (cast_expression "(code *)(iVar6 + 0x2944)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar6 + 0x2944)" (( "(") (binary_expression "iVar6 + 0x2944" (identifier "iVar6") (+ "+") (number_literal "0x2944")) () ")")))) () ")")) (argument_list "(*ppppbVar13,ppppbVar3,ppppbVar16)" (( "(") (pointer_expression "*ppppbVar13" (* "*") (identifier "ppppbVar13")) (, ",") (identifier "ppppbVar3") (, ",") (identifier "ppppbVar16") () ")"))) (; ";")) (expression_statement "ppppbVar25 = ppppbStack_a4;" (assignment_expression "ppppbVar25 = ppppbStack_a4" (identifier "ppppbVar25") (= "=") (identifier "ppppbStack_a4")) (; ";")) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" (identifier "ppppbVar16") (= "=") (identifier "ppppbStack_a0")) (; ";")) (if_statement "if (0 < (int)ppppbStack_a0) {\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" (if "if") (parenthesized_expression "(0 < (int)ppppbStack_a0)" (( "(") (binary_expression "0 < (int)ppppbStack_a0" (number_literal "0") (< "<") (cast_expression "(int)ppppbStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_a0"))) () ")")) (compound_statement "{\n          if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }\n          iVar8 = 0;\n          *pppppbVar18 = ppppbStack_a4;\n          *ppppbVar15 = pppbVar22;\n          ppppbVar15[1] = pppbVar24;\n          *puVar2 = ppppbVar16;\n          break;\n        }" ({ "{") (if_statement "if ((*pppbVar5)[0xe] == (byte *)0x0) {\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }\n          else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" (if "if") (parenthesized_expression "((*pppbVar5)[0xe] == (byte *)0x0)" (( "(") (binary_expression "(*pppbVar5)[0xe] == (byte *)0x0" (subscript_expression "(*pppbVar5)[0xe]" (parenthesized_expression "(*pppbVar5)" (( "(") (pointer_expression "*pppbVar5" (* "*") (identifier "pppbVar5")) () ")")) ([ "[") (number_literal "0xe") (] "]")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) goto LAB_000b66e8;\n          }" ({ "{") (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" (identifier "pppbVar12") (= "=") (subscript_expression "ppppbVar13[6]" (identifier "ppppbVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" (if "if") (parenthesized_expression "(-1 < (int)pppbVar12)" (( "(") (binary_expression "-1 < (int)pppbVar12" (number_literal "-1") (< "<") (cast_expression "(int)pppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppbVar12"))) () ")")) (goto_statement "goto LAB_000b66e8;" (goto "goto") (statement_identifier "LAB_000b66e8") (; ";"))) (} "}")) (else_clause "else {\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" (else "else") (compound_statement "{\n            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);\n            pppbVar12 = ppppbVar13[4];\n            if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }\n            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);\n            ppppbStack_a4 = (byte ****)ppppbVar13[4];\n            pppbVar12 = ppppbVar13[6];\n            if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }\n            ppppbVar14 = ppppbVar25;\n            ppppbVar16 = ppppbStack_a0;\n            if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }\n          }" ({ "{") (expression_statement "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);" (assignment_expression "ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1)" (identifier "ppppbVar17") (= "=") (cast_expression "(byte ****)((int)ppppbStack_a0 + 1)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbStack_a0 + 1)" (( "(") (binary_expression "(int)ppppbStack_a0 + 1" (cast_expression "(int)ppppbStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_a0")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "pppbVar12 = ppppbVar13[4];" (assignment_expression "pppbVar12 = ppppbVar13[4]" (identifier "pppbVar12") (= "=") (subscript_expression "ppppbVar13[4]" (identifier "ppppbVar13") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((int)ppppbVar13[5] < (int)ppppbVar17) {\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" (if "if") (parenthesized_expression "((int)ppppbVar13[5] < (int)ppppbVar17)" (( "(") (binary_expression "(int)ppppbVar13[5] < (int)ppppbVar17" (cast_expression "(int)ppppbVar13[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "ppppbVar13[5]" (identifier "ppppbVar13") ([ "[") (number_literal "5") (] "]"))) (< "<") (cast_expression "(int)ppppbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar17"))) () ")")) (compound_statement "{\n              pcVar27 = *(code **)(puVar26 + 0xa519c);\n              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);\n              ppppbVar13[5] = (byte ***)ppppbVar14;\n              ppppbVar16 = ppppbVar17;\n              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);\n              if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }\n              ppppbVar13[4] = pppbVar12;\n            }" ({ "{") (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa519c);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa519c)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar26 + 0xa519c)" (* "*") (cast_expression "(code **)(puVar26 + 0xa519c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0xa519c)" (( "(") (binary_expression "puVar26 + 0xa519c" (identifier "puVar26") (+ "+") (number_literal "0xa519c")) () ")"))))) (; ";")) (expression_statement "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);" (assignment_expression "ppppbVar14 = (byte ****)((int)ppppbVar17 * 2)" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)((int)ppppbVar17 * 2)" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (parenthesized_expression "((int)ppppbVar17 * 2)" (( "(") (binary_expression "(int)ppppbVar17 * 2" (cast_expression "(int)ppppbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar17")) (* "*") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppppbVar13[5] = (byte ***)ppppbVar14;" (assignment_expression "ppppbVar13[5] = (byte ***)ppppbVar14" (subscript_expression "ppppbVar13[5]" (identifier "ppppbVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte ***)ppppbVar14" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (identifier "ppppbVar14"))) (; ";")) (expression_statement "ppppbVar16 = ppppbVar17;" (assignment_expression "ppppbVar16 = ppppbVar17" (identifier "ppppbVar16") (= "=") (identifier "ppppbVar17")) (; ";")) (expression_statement "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);" (assignment_expression "pppbVar12 = (byte ***)(*pcVar27)(pppbVar12)" (identifier "pppbVar12") (= "=") (cast_expression "(byte ***)(*pcVar27)(pppbVar12)" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (call_expression "(*pcVar27)(pppbVar12)" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "(pppbVar12)" (( "(") (identifier "pppbVar12") () ")"))))) (; ";")) (if_statement "if (pppbVar12 == (byte ***)0x0) {\n                iVar8 = 7;\n                break;\n              }" (if "if") (parenthesized_expression "(pppbVar12 == (byte ***)0x0)" (( "(") (binary_expression "pppbVar12 == (byte ***)0x0" (identifier "pppbVar12") (== "==") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                iVar8 = 7;\n                break;\n              }" ({ "{") (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" (identifier "iVar8") (= "=") (number_literal "7")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "ppppbVar13[4] = pppbVar12;" (assignment_expression "ppppbVar13[4] = pppbVar12" (subscript_expression "ppppbVar13[4]" (identifier "ppppbVar13") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "pppbVar12")) (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);" (call_expression "(**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17)" (parenthesized_expression "(**(code **)(puVar26 + 0xa55dc))" (( "(") (pointer_expression "**(code **)(puVar26 + 0xa55dc)" (* "*") (pointer_expression "*(code **)(puVar26 + 0xa55dc)" (* "*") (cast_expression "(code **)(puVar26 + 0xa55dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0xa55dc)" (( "(") (binary_expression "puVar26 + 0xa55dc" (identifier "puVar26") (+ "+") (number_literal "0xa55dc")) () ")"))))) () ")")) (argument_list "(pppbVar12,ppppbVar25,ppppbVar17)" (( "(") (identifier "pppbVar12") (, ",") (identifier "ppppbVar25") (, ",") (identifier "ppppbVar17") () ")"))) (; ";")) (expression_statement "ppppbStack_a4 = (byte ****)ppppbVar13[4];" (assignment_expression "ppppbStack_a4 = (byte ****)ppppbVar13[4]" (identifier "ppppbStack_a4") (= "=") (cast_expression "(byte ****)ppppbVar13[4]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar13[4]" (identifier "ppppbVar13") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" (identifier "pppbVar12") (= "=") (subscript_expression "ppppbVar13[6]" (identifier "ppppbVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (-1 < (int)pppbVar12) {\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" (if "if") (parenthesized_expression "(-1 < (int)pppbVar12)" (( "(") (binary_expression "-1 < (int)pppbVar12" (number_literal "-1") (< "<") (cast_expression "(int)pppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppbVar12"))) () ")")) (compound_statement "{\nLAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;\n              pppppbVar19 = &ppppbStack_a0;\n              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);\n            }" ({ "{") (labeled_statement "LAB_000b66e8:\n              ppppbVar25 = (byte ****)0x1;" (statement_identifier "LAB_000b66e8") (: ":") (expression_statement "ppppbVar25 = (byte ****)0x1;" (assignment_expression "ppppbVar25 = (byte ****)0x1" (identifier "ppppbVar25") (= "=") (cast_expression "(byte ****)0x1" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";"))) (expression_statement "pppppbVar19 = &ppppbStack_a0;" (assignment_expression "pppppbVar19 = &ppppbStack_a0" (identifier "pppppbVar19") (= "=") (pointer_expression "&ppppbStack_a0" (& "&") (identifier "ppppbStack_a0"))) (; ";")) (expression_statement "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);" (call_expression "(*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4)" (parenthesized_expression "(*(code *)(iVar7 + 0x5220))" (( "(") (pointer_expression "*(code *)(iVar7 + 0x5220)" (* "*") (cast_expression "(code *)(iVar7 + 0x5220)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x5220)" (( "(") (binary_expression "iVar7 + 0x5220" (identifier "iVar7") (+ "+") (number_literal "0x5220")) () ")")))) () ")")) (argument_list "(pppbVar12,1,&ppppbStack_a4)" (( "(") (identifier "pppbVar12") (, ",") (number_literal "1") (, ",") (pointer_expression "&ppppbStack_a4" (& "&") (identifier "ppppbStack_a4")) () ")"))) (; ";")) (} "}"))) (expression_statement "ppppbVar14 = ppppbVar25;" (assignment_expression "ppppbVar14 = ppppbVar25" (identifier "ppppbVar14") (= "=") (identifier "ppppbVar25")) (; ";")) (expression_statement "ppppbVar16 = ppppbStack_a0;" (assignment_expression "ppppbVar16 = ppppbStack_a0" (identifier "ppppbVar16") (= "=") (identifier "ppppbStack_a0")) (; ";")) (if_statement "if ((int)ppppbStack_a0 < 1) {\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" (if "if") (parenthesized_expression "((int)ppppbStack_a0 < 1)" (( "(") (binary_expression "(int)ppppbStack_a0 < 1" (cast_expression "(int)ppppbStack_a0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbStack_a0")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;\n              goto LAB_000b6720;\n            }" ({ "{") (if_statement "if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;" (if "if") (parenthesized_expression "((**ppppbVar13)[0x14] != (byte *)0x0)" (( "(") (binary_expression "(**ppppbVar13)[0x14] != (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" (( "(") (pointer_expression "**ppppbVar13" (* "*") (pointer_expression "*ppppbVar13" (* "*") (identifier "ppppbVar13"))) () ")")) ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b66cc;" (goto "goto") (statement_identifier "LAB_000b66cc") (; ";"))) (goto_statement "goto LAB_000b6720;" (goto "goto") (statement_identifier "LAB_000b6720") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "*pppppbVar18 = ppppbStack_a4;" (assignment_expression "*pppppbVar18 = ppppbStack_a4" (pointer_expression "*pppppbVar18" (* "*") (identifier "pppppbVar18")) (= "=") (identifier "ppppbStack_a4")) (; ";")) (expression_statement "*ppppbVar15 = pppbVar22;" (assignment_expression "*ppppbVar15 = pppbVar22" (pointer_expression "*ppppbVar15" (* "*") (identifier "ppppbVar15")) (= "=") (identifier "pppbVar22")) (; ";")) (expression_statement "ppppbVar15[1] = pppbVar24;" (assignment_expression "ppppbVar15[1] = pppbVar24" (subscript_expression "ppppbVar15[1]" (identifier "ppppbVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "pppbVar24")) (; ";")) (expression_statement "*puVar2 = ppppbVar16;" (assignment_expression "*puVar2 = ppppbVar16" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "ppppbVar16")) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "pppbVar12 = ppppbVar13[6];" (assignment_expression "pppbVar12 = ppppbVar13[6]" (identifier "pppbVar12") (= "=") (subscript_expression "ppppbVar13[6]" (identifier "ppppbVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (-1 < (int)pppbVar12) goto LAB_000b66e8;" (if "if") (parenthesized_expression "(-1 < (int)pppbVar12)" (( "(") (binary_expression "-1 < (int)pppbVar12" (number_literal "-1") (< "<") (cast_expression "(int)pppbVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pppbVar12"))) () ")")) (goto_statement "goto LAB_000b66e8;" (goto "goto") (statement_identifier "LAB_000b66e8") (; ";"))) (if_statement "if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;" (if "if") (parenthesized_expression "((**ppppbVar13)[0x14] == (byte *)0x0)" (( "(") (binary_expression "(**ppppbVar13)[0x14] == (byte *)0x0" (subscript_expression "(**ppppbVar13)[0x14]" (parenthesized_expression "(**ppppbVar13)" (( "(") (pointer_expression "**ppppbVar13" (* "*") (pointer_expression "*ppppbVar13" (* "*") (identifier "ppppbVar13"))) () ")")) ([ "[") (number_literal "0x14") (] "]")) (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000b6720;" (goto "goto") (statement_identifier "LAB_000b6720") (; ";"))) (labeled_statement "LAB_000b66cc:\n        ppppbVar14 = (byte ****)*pppbVar5;" (statement_identifier "LAB_000b66cc") (: ":") (expression_statement "ppppbVar14 = (byte ****)*pppbVar5;" (assignment_expression "ppppbVar14 = (byte ****)*pppbVar5" (identifier "ppppbVar14") (= "=") (cast_expression "(byte ****)*pppbVar5" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (pointer_expression "*pppbVar5" (* "*") (identifier "pppbVar5")))) (; ";"))) (} "}"))) (goto_statement "goto LAB_000b65d4;" (goto "goto") (statement_identifier "LAB_000b65d4") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_000b6720:\n  *pppppbVar18 = (byte ****)0x0;" (statement_identifier "LAB_000b6720") (: ":") (expression_statement "*pppppbVar18 = (byte ****)0x0;" (assignment_expression "*pppppbVar18 = (byte ****)0x0" (pointer_expression "*pppppbVar18" (* "*") (identifier "pppppbVar18")) (= "=") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_000b65d4:\n  if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" (statement_identifier "LAB_000b65d4") (: ":") (if_statement "if (iStack_9c == *piVar10) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(iStack_9c == *piVar10)" (( "(") (binary_expression "iStack_9c == *piVar10" (identifier "iStack_9c") (== "==") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}")))) (expression_statement "pcVar27 = *(code **)(puVar26 + 0xa55bc);" (assignment_expression "pcVar27 = *(code **)(puVar26 + 0xa55bc)" (identifier "pcVar27") (= "=") (pointer_expression "*(code **)(puVar26 + 0xa55bc)" (* "*") (cast_expression "(code **)(puVar26 + 0xa55bc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar26 + 0xa55bc)" (( "(") (binary_expression "puVar26 + 0xa55bc" (identifier "puVar26") (+ "+") (number_literal "0xa55bc")) () ")"))))) (; ";")) (expression_statement "iVar20 = iStack_9c;" (assignment_expression "iVar20 = iStack_9c" (identifier "iVar20") (= "=") (identifier "iStack_9c")) (; ";")) (expression_statement "(*pcVar27)();" (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" (( "(") (pointer_expression "*pcVar27" (* "*") (identifier "pcVar27")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" (if "if") (parenthesized_expression "((byte ****)ppppbVar14[0xb] == ppppbVar16)" (( "(") (binary_expression "(byte ****)ppppbVar14[0xb] == ppppbVar16" (cast_expression "(byte ****)ppppbVar14[0xb]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar14[0xb]" (identifier "ppppbVar14") ([ "[") (number_literal "0xb") (] "]"))) (== "==") (identifier "ppppbVar16")) () ")")) (compound_statement "{\n    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);\n    pppppbVar19[4] = (byte ****)ppppbVar14[7];\n    pppppbVar19[5] = (byte ****)ppppbVar14[8];\n    ppppbVar3 = (byte ****)ppppbVar14[4];\n    pppppbVar19[3] = (byte ****)ppppbVar14[5];\n    pppppbVar19[2] = ppppbVar3;\n    return 0;\n  }" ({ "{") (expression_statement "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);" (call_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb)" (parenthesized_expression "(*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))" (( "(") (pointer_expression "*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" (* "*") (cast_expression "(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar27 + 0xa4f44) + -0x2edc)" (( "(") (binary_expression "*(int *)(pcVar27 + 0xa4f44) + -0x2edc" (pointer_expression "*(int *)(pcVar27 + 0xa4f44)" (* "*") (cast_expression "(int *)(pcVar27 + 0xa4f44)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar27 + 0xa4f44)" (( "(") (binary_expression "pcVar27 + 0xa4f44" (identifier "pcVar27") (+ "+") (number_literal "0xa4f44")) () ")")))) (+ "+") (number_literal "-0x2edc")) () ")")))) () ")")) (argument_list "(iVar20 + 0xeb)" (( "(") (binary_expression "iVar20 + 0xeb" (identifier "iVar20") (+ "+") (number_literal "0xeb")) () ")"))) (; ";")) (expression_statement "pppppbVar19[4] = (byte ****)ppppbVar14[7];" (assignment_expression "pppppbVar19[4] = (byte ****)ppppbVar14[7]" (subscript_expression "pppppbVar19[4]" (identifier "pppppbVar19") ([ "[") (number_literal "4") (] "]")) (= "=") (cast_expression "(byte ****)ppppbVar14[7]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar14[7]" (identifier "ppppbVar14") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "pppppbVar19[5] = (byte ****)ppppbVar14[8];" (assignment_expression "pppppbVar19[5] = (byte ****)ppppbVar14[8]" (subscript_expression "pppppbVar19[5]" (identifier "pppppbVar19") ([ "[") (number_literal "5") (] "]")) (= "=") (cast_expression "(byte ****)ppppbVar14[8]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar14[8]" (identifier "ppppbVar14") ([ "[") (number_literal "8") (] "]")))) (; ";")) (expression_statement "ppppbVar3 = (byte ****)ppppbVar14[4];" (assignment_expression "ppppbVar3 = (byte ****)ppppbVar14[4]" (identifier "ppppbVar3") (= "=") (cast_expression "(byte ****)ppppbVar14[4]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar14[4]" (identifier "ppppbVar14") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "pppppbVar19[3] = (byte ****)ppppbVar14[5];" (assignment_expression "pppppbVar19[3] = (byte ****)ppppbVar14[5]" (subscript_expression "pppppbVar19[3]" (identifier "pppppbVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(byte ****)ppppbVar14[5]" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (subscript_expression "ppppbVar14[5]" (identifier "ppppbVar14") ([ "[") (number_literal "5") (] "]")))) (; ";")) (expression_statement "pppppbVar19[2] = ppppbVar3;" (assignment_expression "pppppbVar19[2] = ppppbVar3" (subscript_expression "pppppbVar19[2]" (identifier "pppppbVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "ppppbVar3")) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" (if "if") (parenthesized_expression "(ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0)" (( "(") (binary_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0" (subscript_expression "ppppbVar14[(int)ppppbVar16 * 6 + 0x17]" (identifier "ppppbVar14") ([ "[") (binary_expression "(int)ppppbVar16 * 6 + 0x17" (binary_expression "(int)ppppbVar16 * 6" (cast_expression "(int)ppppbVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppppbVar16")) (* "*") (number_literal "6")) (+ "+") (number_literal "0x17")) (] "]")) (== "==") (cast_expression "(byte ***)0x0" (( "(") (type_descriptor "byte ***" (type_identifier "byte") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *pppppbVar19 = (byte ****)0x1;\n    return 0;\n  }" ({ "{") (expression_statement "*pppppbVar19 = (byte ****)0x1;" (assignment_expression "*pppppbVar19 = (byte ****)0x1" (pointer_expression "*pppppbVar19" (* "*") (identifier "pppppbVar19")) (= "=") (cast_expression "(byte ****)0x1" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x1"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar20 = FUN_000b6454();" (assignment_expression "iVar20 = FUN_000b6454()" (identifier "iVar20") (= "=") (call_expression "FUN_000b6454()" (identifier "FUN_000b6454") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (pppppbVar19[4] == (byte ****)0x0) {\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" (if "if") (parenthesized_expression "(pppppbVar19[4] == (byte ****)0x0)" (( "(") (binary_expression "pppppbVar19[4] == (byte ****)0x0" (subscript_expression "pppppbVar19[4]" (identifier "pppppbVar19") ([ "[") (number_literal "4") (] "]")) (== "==") (cast_expression "(byte ****)0x0" (( "(") (type_descriptor "byte ****" (type_identifier "byte") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar26[0xad15c] = 1;\n    return iVar20;\n  }" ({ "{") (expression_statement "puVar26[0xad15c] = 1;" (assignment_expression "puVar26[0xad15c] = 1" (subscript_expression "puVar26[0xad15c]" (identifier "puVar26") ([ "[") (number_literal "0xad15c") (] "]")) (= "=") (number_literal "1")) (; ";")) (return_statement "return iVar20;" (return "return") (identifier "iVar20") (; ";")) (} "}"))) (return_statement "return iVar20;" (return "return") (identifier "iVar20") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) body: (compound_statement (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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator 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: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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))) (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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)))))))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) condition: (parenthesized_expression (true))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (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 declarator: (abstract_pointer_declarator 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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (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)))))) (goto_statement label: (statement_identifier)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))) body: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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 (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) (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (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))))) 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: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) 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: (binary_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: (identifier))) (expression_statement (assignment_expression left: (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))))) 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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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)))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_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 (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator 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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))))) (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))) (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))) (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: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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 (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) consequence: (compound_statement (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)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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 (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier)))) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))))))) (expression_statement (assignment_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 (pointer_expression argument: (identifier)) (identifier) (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (break_statement))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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) (pointer_expression argument: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (identifier)))) index: (number_literal)) 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))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (break_statement))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (identifier)))) index: (number_literal)) 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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (pointer_expression argument: (identifier)))))))) (goto_statement label: (statement_identifier)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_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: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (identifier) index: (number_literal))) 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: (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)))))) arguments: (argument_list (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator 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 declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (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) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (return_statement (identifier)))) (return_statement (identifier)))))

/* WARNING: Type propagation algorithm not settling */

int MASKED(char *param_1,int param_2,byte ****param_3,byte *****param_4)

{
  undefined *puVar1;
  undefined4 *puVar2;
  byte ****ppppbVar3;
  uint uVar4;
  byte ***pppbVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  byte ***pppbVar9;
  int *piVar10;
  uint uVar11;
  byte ***pppbVar12;
  byte ****ppppbVar13;
  byte ****ppppbVar14;
  byte ****ppppbVar15;
  byte ****ppppbVar16;
  byte ****ppppbVar17;
  byte *****pppppbVar18;
  byte *****pppppbVar19;
  int iVar20;
  undefined4 unaff_s0;
  byte bVar21;
  undefined *unaff_s1;
  undefined4 unaff_s2;
  byte ***pppbVar22;
  byte ****unaff_s3;
  int iVar23;
  byte ***pppbVar24;
  byte ****ppppbVar25;
  undefined *puVar26;
  code *pcVar27;
  byte *****pppppbStack_cc;
  byte ****ppppbStack_a4;
  byte ****ppppbStack_a0;
  int iStack_9c;
  undefined4 uStack_98;
  undefined *puStack_94;
  undefined4 uStack_90;
  byte ****ppppbStack_8c;
  undefined *puStack_88;
  byte ****ppppbStack_84;
  char *pcStack_80;
  byte *****pppppbStack_7c;
  int iStack_78;
  code *pcStack_74;
  undefined4 *local_60;
  int local_5c;
  byte ****local_58;
  byte ****local_3c;
  byte ****local_38;
  int local_34;
  int local_2c;
  
  puVar1 = PTR___stack_chk_guard_0015ba2c;
  ppppbVar3 = *(byte *****)(param_2 + 0x50);
  local_2c = *(int *)PTR___stack_chk_guard_0015ba2c;
  if ((*param_1 == '\0') || (*(int *)(param_2 + 0x38) == 0)) {
    bVar21 = 0;
    iVar6 = *(int *)(param_2 + 0x4c);
    unaff_s2 = 0xffffff80;
    unaff_s3 = *(byte *****)(param_2 + 0x48);
    iVar20 = *(int *)(param_2 + 0x34);
    unaff_s1 = PTR_LAB_0015b6f8 + 0x5eb4;
    ppppbVar15 = param_3;
    pppppbVar18 = param_4;
    do {
      bVar21 = bVar21 | *(byte *)ppppbVar3;
      local_3c = ppppbVar3;
      while (bVar21 == 0) {
        ppppbVar13 = (byte ****)((int)local_3c + 1);
        unaff_s0 = 0;
        if ((iVar20 == 0) ||
           (local_3c < (byte ****)(*(int *)(param_2 + 0x28) + *(int *)(param_2 + 0x30)))) {
          if (param_3 != (byte ****)0x0) {
            *param_3 = *(byte ****)(param_2 + 0x50);
            *param_4 = (byte ****)((int)ppppbVar13 + (-1 - *(int *)(param_2 + 0x50)));
          }
          unaff_s3 = (byte ****)((int)unaff_s3 + iVar6);
          if (unaff_s3 <= ppppbVar13) goto LAB_000b6384;
          ppppbVar3 = (byte ****)((int)local_3c + 2);
          if (*(byte *)((int)local_3c + 1) != 0) goto LAB_000b63a4;
          goto LAB_000b637c;
        }
        iVar20 = FUN_000b5eb4(param_2);
        if (iVar20 != 0) goto LAB_000b6244;
        iVar20 = *(int *)(param_2 + 0x34);
        bVar21 = *(byte *)local_3c;
      }
      ppppbVar3 = (byte ****)((int)local_3c + 1);
      bVar21 = *(byte *)local_3c & 0x80;
    } while( true );
  }
  local_38 = (byte ****)((uint)local_38 & 0xffffff);
  if (param_3 != (byte ****)0x0) {
    *param_3 = (byte ***)ppppbVar3;
    *param_4 = (byte ****)(*(int *)(param_2 + 0x54) + -1);
  }
  local_58 = (byte ****)&local_38;
  ppppbVar15 = *(byte *****)(param_2 + 0x4c);
  local_60 = (undefined4 *)(param_2 + 0x58);
  ppppbVar13 = *(byte *****)(param_2 + 0x48);
  local_5c = param_2 + 0x54;
  pppppbVar18 = &local_3c;
  local_3c = ppppbVar3;
  (*(code *)(PTR_LAB_0015b6c0 + -0x3268))(0);
  if (local_38._0_1_ == '\0') {
    iVar20 = 0;
    *(byte *****)(param_2 + 0x50) = local_3c;
  }
  else {
    iVar20 = 0;
    *(undefined4 *)(param_2 + 0x50) = 0;
  }
  goto LAB_000b6244;
LAB_000b6384:
  *(undefined4 *)(param_2 + 0x50) = 0;
  iVar20 = 0;
  local_3c = ppppbVar13;
  goto LAB_000b6244;
  while (ppppbVar3 = (byte ****)((int)ppppbVar13 + 1), *(byte *)ppppbVar13 == 0) {
LAB_000b637c:
    ppppbVar13 = ppppbVar3;
    if (unaff_s3 == ppppbVar13) goto LAB_000b6384;
  }
LAB_000b63a4:
  ppppbVar15 = (byte ****)&DAT_0000000a;
  local_3c = ppppbVar13;
  iVar20 = FUN_000b5f80(param_2);
  if (iVar20 == 0) {
    ppppbVar3 = local_3c;
    iVar6 = (*(code *)(PTR_LAB_0015b65c + 0xf74))(local_3c,&local_38);
    *(byte **)(param_2 + 0x50) = (byte *)((int)ppppbVar3 + iVar6);
    ppppbVar13 = local_38;
    if (*param_1 == '\0') {
      uVar11 = *(uint *)(param_2 + 0x5c);
      uVar4 = uVar11 + local_34;
      *(uint *)(param_2 + 0x5c) = uVar4;
      *(byte **)(param_2 + 0x58) =
           (byte *)((int)local_38 + (uint)(uVar4 < uVar11) + *(int *)(param_2 + 0x58));
    }
    else {
      uVar11 = *(uint *)(param_2 + 0x5c);
      uVar4 = uVar11 - local_34;
      *(uint *)(param_2 + 0x5c) = uVar4;
      *(uint *)(param_2 + 0x58) =
           (*(int *)(param_2 + 0x58) - (int)local_38) - (uint)(uVar11 < uVar4);
    }
  }
  else {
    iVar20 = 0;
  }
LAB_000b6244:
  if (local_2c == *(int *)puVar1) {
    return iVar20;
  }
  pcVar27 = FUN_000b6454;
  iVar20 = local_2c;
  puVar26 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  puVar2 = local_60;
  piVar10 = *(int **)(puVar26 + 0xa55d8);
  puStack_88 = puVar1;
  iStack_9c = *piVar10;
  ppppbVar3 = (byte ****)ppppbVar13[2];
  if (*(char *)(iVar20 + 0xeb) == '\0') {
    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x26f0);
  }
  else {
    pppppbStack_cc = (byte *****)(*(int *)(puVar26 + 0xa526c) + -0x2674);
  }
  ppppbVar14 = ppppbVar13;
  ppppbVar16 = ppppbVar15;
  pppppbVar19 = pppppbVar18;
  uStack_98 = unaff_s0;
  puStack_94 = unaff_s1;
  uStack_90 = unaff_s2;
  ppppbStack_8c = unaff_s3;
  ppppbStack_84 = param_3;
  pcStack_80 = param_1;
  pppppbStack_7c = param_4;
  iStack_78 = param_2;
  pcStack_74 = pcVar27;
  if (ppppbVar3 != (byte ****)0x0) {
    pppbVar5 = *ppppbVar13;
    ppppbVar14 = (byte ****)*pppbVar5;
    if (ppppbVar14[0x14] != (byte ***)0x0) {
      iVar23 = *(int *)(puVar26 + 0xa52a4);
      iVar6 = *(int *)(puVar26 + 0xa5208);
      iVar7 = *(int *)(puVar26 + 0xa5208);
      while( true ) {
        pppbVar22 = ppppbVar14[0x16];
        pppbVar24 = ppppbVar14[0x17];
        ppppbVar16 = (byte ****)&ppppbStack_a4;
        pppppbVar19 = &ppppbStack_a0;
        iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);
        if (iVar8 != 0) break;
        if ((int)ppppbVar3 < 2) {
          ppppbVar16 = (byte ****)0x1;
        }
        else {
          ppppbVar14 = (byte ****)pppbVar5[1];
          ppppbVar25 = (byte ****)0x1;
          ppppbVar16 = ppppbVar25;
          if ((ppppbVar14[0x14] != (byte ***)0x0) && (ppppbVar14[0x16] == pppbVar22)) {
            pppbVar12 = pppbVar5 + 2;
            pppbVar9 = ppppbVar14[0x17];
            while (ppppbVar16 = ppppbVar25, pppbVar9 == pppbVar24) {
              pppppbVar19 = (byte *****)0x0;
              ppppbVar16 = (byte ****)0x0;
              iVar8 = (*(code *)(iVar23 + 0x6168))(iVar20 + 0xeb);
              ppppbVar25 = (byte ****)((int)ppppbVar25 + 1);
              if (iVar8 != 0) goto LAB_000b65d4;
              ppppbVar16 = ppppbVar3;
              if (((ppppbVar3 == ppppbVar25) ||
                  (ppppbVar14 = (byte ****)*pppbVar12, ppppbVar16 = ppppbVar25,
                  ppppbVar14[0x14] == (byte ***)0x0)) ||
                 (pppbVar12 = pppbVar12 + 1, ppppbVar14[0x16] != pppbVar22)) break;
              pppbVar9 = ppppbVar14[0x17];
            }
          }
        }
        ppppbVar14 = ppppbVar3;
        pppppbVar19 = pppppbStack_cc;
        (*(code *)(iVar6 + 0x2944))(*ppppbVar13,ppppbVar3,ppppbVar16);
        ppppbVar25 = ppppbStack_a4;
        ppppbVar16 = ppppbStack_a0;
        if (0 < (int)ppppbStack_a0) {
          if ((*pppbVar5)[0xe] == (byte *)0x0) {
            pppbVar12 = ppppbVar13[6];
            if (-1 < (int)pppbVar12) goto LAB_000b66e8;
          }
          else {
            ppppbVar17 = (byte ****)((int)ppppbStack_a0 + 1);
            pppbVar12 = ppppbVar13[4];
            if ((int)ppppbVar13[5] < (int)ppppbVar17) {
              pcVar27 = *(code **)(puVar26 + 0xa519c);
              ppppbVar14 = (byte ****)((int)ppppbVar17 * 2);
              ppppbVar13[5] = (byte ***)ppppbVar14;
              ppppbVar16 = ppppbVar17;
              pppbVar12 = (byte ***)(*pcVar27)(pppbVar12);
              if (pppbVar12 == (byte ***)0x0) {
                iVar8 = 7;
                break;
              }
              ppppbVar13[4] = pppbVar12;
            }
            (**(code **)(puVar26 + 0xa55dc))(pppbVar12,ppppbVar25,ppppbVar17);
            ppppbStack_a4 = (byte ****)ppppbVar13[4];
            pppbVar12 = ppppbVar13[6];
            if (-1 < (int)pppbVar12) {
LAB_000b66e8:
              ppppbVar25 = (byte ****)0x1;
              pppppbVar19 = &ppppbStack_a0;
              (*(code *)(iVar7 + 0x5220))(pppbVar12,1,&ppppbStack_a4);
            }
            ppppbVar14 = ppppbVar25;
            ppppbVar16 = ppppbStack_a0;
            if ((int)ppppbStack_a0 < 1) {
              if ((**ppppbVar13)[0x14] != (byte *)0x0) goto LAB_000b66cc;
              goto LAB_000b6720;
            }
          }
          iVar8 = 0;
          *pppppbVar18 = ppppbStack_a4;
          *ppppbVar15 = pppbVar22;
          ppppbVar15[1] = pppbVar24;
          *puVar2 = ppppbVar16;
          break;
        }
        pppbVar12 = ppppbVar13[6];
        if (-1 < (int)pppbVar12) goto LAB_000b66e8;
        if ((**ppppbVar13)[0x14] == (byte *)0x0) goto LAB_000b6720;
LAB_000b66cc:
        ppppbVar14 = (byte ****)*pppbVar5;
      }
      goto LAB_000b65d4;
    }
  }
LAB_000b6720:
  *pppppbVar18 = (byte ****)0x0;
  iVar8 = 0;
LAB_000b65d4:
  if (iStack_9c == *piVar10) {
    return iVar8;
  }
  pcVar27 = *(code **)(puVar26 + 0xa55bc);
  iVar20 = iStack_9c;
  (*pcVar27)();
  if ((byte ****)ppppbVar14[0xb] == ppppbVar16) {
    (*(code *)(*(int *)(pcVar27 + 0xa4f44) + -0x2edc))(iVar20 + 0xeb);
    pppppbVar19[4] = (byte ****)ppppbVar14[7];
    pppppbVar19[5] = (byte ****)ppppbVar14[8];
    ppppbVar3 = (byte ****)ppppbVar14[4];
    pppppbVar19[3] = (byte ****)ppppbVar14[5];
    pppppbVar19[2] = ppppbVar3;
    return 0;
  }
  if (ppppbVar14[(int)ppppbVar16 * 6 + 0x17] == (byte ***)0x0) {
    *pppppbVar19 = (byte ****)0x1;
    return 0;
  }
  iVar20 = FUN_000b6454();
  if (pppppbVar19[4] == (byte ****)0x0) {
    puVar26[0xad15c] = 1;
    return iVar20;
  }
  return iVar20;
}

