
void * delpos234_internal(tree234 *t,int index)

{
  node234 **ppnVar1;
  undefined *puVar2;
  node234 *pnVar3;
  node234_conflict *pnVar4;
  node234_conflict *pnVar5;
  node234 **ppnVar6;
  int *piVar7;
  node234_conflict *pnVar8;
  int iVar9;
  node234 *pnVar10;
  void *pvVar11;
  void *pvVar12;
  int iVar13;
  int iVar14;
  node234 *pnVar15;
  int iVar16;
  int iVar17;
  node234 *pnVar18;
  int iVar19;
  int iVar20;
  void *pvVar21;
  
  pvVar21 = (void *)0x0;
  iVar20 = -1;
  pnVar8 = t->root;
joined_r0x0007e0e8:
  do {
    while( true ) {
      while( true ) {
        iVar19 = index;
        pnVar5 = pnVar8;
        if (pnVar5 == (node234_conflict *)0x0) {
          if (pvVar21 == (void *)0x0) {
            pvVar21 = *(void **)(iVar20 * 4 + 0x24);
          }
          if (iVar20 == -1) {
            return (void *)0x0;
          }
          goto LAB_0007e130;
        }
        if (pnVar5->counts[0] <= iVar19) break;
        pnVar15 = pnVar5->kids[0];
        pnVar8 = pnVar15;
        index = iVar19;
        if (pnVar15->elems[1] == (void *)0x0) {
          pnVar18 = pnVar5->kids[1];
          iVar16 = 1;
          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {
            iVar9 = 0;
            iVar17 = 0;
            goto LAB_0007e740;
          }
          iVar19 = 0;
          goto LAB_0007e5d0;
        }
      }
      index = iVar19 - (pnVar5->counts[0] + 1);
      if (index < 0) break;
      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;
      iVar19 = index - (pnVar5->counts[1] + 1);
      if (iVar19 < 0) {
        if (pvVar21 == (void *)0x0) {
          pvVar21 = pnVar5->elems[1];
          iVar20 = 1;
        }
        else {
          iVar20 = 1;
        }
LAB_0007e130:
        pnVar8 = pnVar5->parent;
        pnVar15 = pnVar5->kids[0];
        goto joined_r0x0007e264;
      }
      if (iVar19 < pnVar5->counts[2]) {
        pnVar8 = pnVar5->kids[2];
        iVar9 = 1;
        index = iVar19;
        if (pnVar8->elems[1] == (void *)0x0) {
          iVar16 = 2;
          goto LAB_0007e3d8;
        }
      }
      else {
        index = iVar19 - (pnVar5->counts[2] + 1);
        if (index < 0) {
          if (pvVar21 == (void *)0x0) {
            pvVar21 = pnVar5->elems[2];
            iVar20 = 2;
          }
          else {
            iVar20 = 2;
          }
          goto LAB_0007e130;
        }
        pnVar18 = pnVar5->kids[3];
        pnVar8 = pnVar18;
        if (pnVar18->elems[1] == (void *)0x0) {
          pnVar15 = pnVar5->kids[2];
          if (pnVar15->elems[1] == (void *)0x0) {
            iVar9 = 2;
            iVar16 = 3;
            iVar17 = 8;
            goto LAB_0007e740;
          }
          iVar16 = 3;
          iVar17 = 8;
          goto LAB_0007e3f0;
        }
      }
    }
    if (pvVar21 == (void *)0x0) {
      pvVar21 = pnVar5->elems[0];
    }
    iVar20 = 0;
    pnVar8 = pnVar5->parent;
    pnVar15 = pnVar5->kids[0];
joined_r0x0007e264:
    if (pnVar8 == (node234_conflict *)0x0) {
      if (pnVar5->elems[1] == (void *)0x0) {
        if (pnVar15 == (node234 *)0x0) {
          (*(code *)PTR_safefree_000b23d0)(pnVar5);
          t->root = (node234_conflict *)0x0;
          return pvVar21;
        }
      }
      else if (pnVar15 == (node234 *)0x0) {
        pnVar8 = (node234_conflict *)0x0;
        goto LAB_0007e284;
      }
    }
    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {
LAB_0007e284:
      if (iVar20 == 2) goto LAB_0007e2c8;
      pvVar12 = pnVar5->elems[iVar20 + 1];
      iVar19 = iVar20 + 1;
      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;
      ppnVar6 = pnVar5->kids + iVar20 + -1;
      goto LAB_0007e2bc;
    }
    ppnVar6 = pnVar5->kids + iVar20 + -1;
    pnVar8 = ppnVar6[1];
    iVar19 = iVar20 + 1;
    pnVar4 = pnVar8;
    if (pnVar8->elems[1] == (void *)0x0) {
      pnVar10 = ppnVar6[2];
      pnVar15 = pnVar10->kids[0];
      pnVar18 = pnVar10;
      if (pnVar10->elems[1] == (void *)0x0) {
        pvVar12 = ppnVar6[9];
        iVar9 = pnVar10->counts[0];
        pnVar8->kids[2] = pnVar15;
        pnVar8->elems[1] = pvVar12;
        pnVar8->counts[2] = iVar9;
        if (pnVar15 != (node234 *)0x0) {
          pnVar15->parent = pnVar8;
        }
        pnVar15 = pnVar10->kids[1];
        iVar9 = pnVar10->counts[1];
        pnVar8->elems[2] = pnVar10->elems[0];
        pnVar8->kids[3] = pnVar15;
        pnVar8->counts[3] = iVar9;
        if (pnVar15 != (node234 *)0x0) {
          pnVar15->parent = pnVar8;
        }
        (*(code *)PTR_safefree_000b23d0)();
        iVar9 = countnode234(pnVar8);
        ppnVar6[5] = (node234 *)iVar9;
        if (iVar20 == 2) {
LAB_0007e554:
          iVar19 = 3;
          iVar9 = 2;
LAB_0007e55c:
          pnVar5->elems[iVar9] = (void *)0x0;
          pnVar5->kids[iVar19] = (node234 *)0x0;
          pnVar5->counts[iVar19] = 0;
          pvVar12 = pnVar5->elems[0];
        }
        else {
          pvVar12 = ppnVar6[10];
          iVar9 = iVar20;
          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;
          do {
            ppnVar6[9] = (node234 *)pvVar12;
            ppnVar6[2] = ppnVar6[3];
            ppnVar6[6] = ppnVar6[7];
            if (iVar19 == 2) goto LAB_0007e554;
            pvVar12 = ppnVar6[0xb];
            iVar19 = 2;
            ppnVar6 = ppnVar6 + 1;
          } while (pvVar12 != (void *)0x0);
          pnVar5->elems[1] = (void *)0x0;
          pnVar5->kids[2] = (node234 *)0x0;
          pnVar5->counts[2] = 0;
          pvVar12 = pnVar5->elems[0];
        }
        puVar2 = PTR_safefree_000b23d0;
        if (pvVar12 == (void *)0x0) {
          t->root = pnVar8;
          pnVar8->parent = (node234_conflict *)0x0;
          (*(code *)puVar2)(pnVar5);
        }
        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;
      }
      else {
        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {
          pnVar18 = pnVar3;
          pnVar15 = pnVar3->kids[0];
        }
        ppnVar6[9] = (node234 *)pnVar18->elems[0];
        pnVar8 = pnVar10;
        index = 0;
      }
    }
    else {
      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {
        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||
               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {
          pnVar4 = pnVar18;
          pnVar15 = pnVar4->kids[0];
          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;
        }
        ppnVar1 = pnVar4->kids;
        pnVar4 = ppnVar1[1];
        if (ppnVar1[1] == (node234 *)0x0) {
          pnVar4 = pnVar15;
        }
      }
LAB_0007e21c:
      pvVar12 = pnVar4->elems[2];
      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {
        pvVar12 = pnVar4->elems[0];
      }
      ppnVar6[9] = (node234 *)pvVar12;
      index = (int)ppnVar6[5] + -1;
    }
  } while( true );
LAB_0007e3bc:
  pnVar8 = pnVar5->kids[1];
  iVar9 = 0;
  if (pnVar8->elems[1] == (void *)0x0) {
    iVar16 = 1;
LAB_0007e3d8:
    iVar17 = iVar9 * 4;
    pnVar15 = pnVar5->kids[iVar9];
    iVar19 = iVar16 * 4;
    if (pnVar15->elems[1] == (void *)0x0) {
      ppnVar6 = pnVar5->kids + iVar16 + -1;
      pnVar18 = ppnVar6[2];
      iVar13 = iVar16 + 1;
      if (pnVar18 == (node234 *)0x0) {
        pnVar18 = ppnVar6[1];
        iVar19 = index + pnVar5->counts[iVar9] + 1;
      }
      else {
        if (pnVar18->elems[1] != (void *)0x0) {
LAB_0007e5d0:
          iVar9 = (int)pnVar5->kids + iVar19 + -4;
          iVar19 = pnVar18->counts[0];
          pnVar15 = pnVar18->kids[0];
          pvVar12 = *(void **)(iVar9 + 0x24);
          pnVar8->kids[2] = pnVar15;
          pnVar8->counts[2] = iVar19;
          pnVar8->elems[1] = pvVar12;
          if (pnVar15 != (node234 *)0x0) {
            pnVar15->parent = pnVar8;
          }
          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];
          pvVar12 = pnVar18->elems[1];
          pnVar18->kids[0] = pnVar18->kids[1];
          pnVar18->counts[0] = pnVar18->counts[1];
          if (pvVar12 == (void *)0x0) {
            iVar16 = 1;
            iVar19 = 0;
          }
          else {
            iVar19 = pnVar18->counts[2];
            pvVar11 = pnVar18->elems[2];
            pnVar18->kids[1] = pnVar18->kids[2];
            pnVar18->counts[1] = iVar19;
            pnVar18->elems[0] = pvVar12;
            if (pvVar11 == (void *)0x0) {
              iVar16 = 2;
              iVar19 = 1;
            }
            else {
              pnVar15 = pnVar18->kids[3];
              iVar16 = 3;
              iVar17 = pnVar18->counts[3];
              iVar19 = 2;
              pnVar18->elems[1] = pvVar11;
              pnVar18->kids[2] = pnVar15;
              pnVar18->counts[2] = iVar17;
            }
          }
          pnVar18->kids[iVar16] = (node234 *)0x0;
          pnVar18->counts[iVar16] = 0;
          pnVar18->elems[iVar19] = (void *)0x0;
          iVar19 = countnode234(pnVar8);
          *(int *)(iVar9 + 0x14) = iVar19;
          iVar19 = countnode234(pnVar18);
          pnVar5->counts[iVar13] = iVar19;
          goto joined_r0x0007e0e8;
        }
        iVar9 = iVar16 + -1;
        pnVar15 = *ppnVar6;
        pnVar18 = ppnVar6[1];
        iVar17 = iVar9 * 4;
        iVar19 = index + (int)ppnVar6[4] + 1;
      }
LAB_0007e740:
      iVar14 = pnVar18->counts[1];
      pvVar12 = pnVar18->elems[0];
      iVar13 = pnVar18->counts[0];
      pnVar10 = pnVar18->kids[0];
      pnVar18->kids[3] = pnVar18->kids[1];
      pnVar18->counts[3] = iVar14;
      pnVar18->kids[2] = pnVar10;
      pnVar18->elems[2] = pvVar12;
      pnVar18->counts[2] = iVar13;
      iVar13 = pnVar15->counts[1];
      pnVar10 = pnVar15->kids[1];
      pnVar18->elems[1] = pnVar5->elems[iVar9];
      pnVar18->counts[1] = iVar13;
      pnVar18->kids[1] = pnVar10;
      if (pnVar10 != (node234 *)0x0) {
        pnVar10->parent = pnVar18;
      }
      pnVar10 = pnVar15->kids[0];
      iVar13 = pnVar15->counts[0];
      pnVar18->elems[0] = pnVar15->elems[0];
      pnVar18->kids[0] = pnVar10;
      pnVar18->counts[0] = iVar13;
      if (pnVar10 != (node234 *)0x0) {
        pnVar10->parent = pnVar18;
      }
      iVar13 = countnode234(pnVar18);
      puVar2 = PTR_safefree_000b23d0;
      pnVar5->counts[iVar16] = iVar13;
      (*(code *)puVar2)(pnVar15);
      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);
      iVar16 = piVar7[2];
      while (iVar16 != 0) {
        iVar9 = iVar9 + 1;
        piVar7[1] = iVar16;
        piVar7[5] = piVar7[6];
        if (iVar9 == 3) {
          pnVar5->elems[2] = (void *)0x0;
          pnVar5->kids[3] = (node234 *)0x0;
          pnVar5->counts[3] = 0;
          goto LAB_0007e838;
        }
        piVar7[9] = piVar7[10];
        iVar16 = piVar7[3];
        piVar7 = piVar7 + 1;
      }
      pnVar5->kids[iVar9] = (node234 *)0x0;
      pnVar5->counts[iVar9] = 0;
      pnVar5->elems[iVar9] = (void *)0x0;
LAB_0007e838:
      puVar2 = PTR_safefree_000b23d0;
      pnVar8 = pnVar18;
      index = iVar19;
      if (pnVar5->elems[0] == (void *)0x0) {
        t->root = pnVar18;
        pnVar18->parent = (node234_conflict *)0x0;
        (*(code *)puVar2)(pnVar5);
      }
    }
    else {
LAB_0007e3f0:
      pvVar12 = pnVar15->elems[2];
      iVar19 = 3;
      pnVar18 = pnVar8->kids[0];
      iVar9 = pnVar8->counts[0];
      iVar13 = 1;
      if (pvVar12 == (void *)0x0) {
        iVar19 = 2;
      }
      iVar14 = pnVar8->counts[1];
      pvVar11 = pnVar8->elems[0];
      pnVar8->kids[2] = pnVar8->kids[1];
      pnVar8->counts[2] = iVar14;
      pnVar8->elems[1] = pvVar11;
      pnVar8->kids[1] = pnVar18;
      pnVar8->counts[1] = iVar9;
      if (pvVar12 != (void *)0x0) {
        iVar13 = 2;
      }
      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);
      pnVar18 = pnVar15->kids[iVar19];
      pnVar8->kids[0] = pnVar18;
      pnVar8->counts[0] = pnVar15->counts[iVar19];
      if (pnVar18 != (node234 *)0x0) {
        pnVar18->parent = pnVar8;
      }
      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];
      pnVar15->kids[iVar19] = (node234 *)0x0;
      pnVar15->counts[iVar19] = 0;
      pnVar15->elems[iVar13] = (void *)0x0;
      iVar19 = countnode234(pnVar8);
      pnVar5->counts[iVar16] = iVar19;
      iVar9 = *(int *)((int)pnVar5->counts + iVar17);
      iVar19 = countnode234(pnVar15);
      *(int *)((int)pnVar5->counts + iVar17) = iVar19;
      index = (index + iVar9) - iVar19;
    }
  }
  goto joined_r0x0007e0e8;
  while( true ) {
    pvVar12 = ppnVar6[0xb];
    iVar19 = 2;
    ppnVar6 = ppnVar6 + 1;
    if (pvVar12 == (void *)0x0) break;
LAB_0007e2bc:
    ppnVar6[9] = (node234 *)pvVar12;
    if (iVar19 == 2) goto LAB_0007e2c8;
  }
  iVar20 = 1;
LAB_0007e2cc:
  pnVar5->elems[iVar20] = (void *)0x0;
  do {
    pnVar4 = pnVar5;
    if (pnVar8 == (node234_conflict *)0x0) {
      return pvVar21;
    }
    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {
      iVar20 = 3;
      if (pnVar5->kids[1] == pnVar4) {
        iVar20 = 1;
      }
      else if (pnVar5->kids[2] == pnVar4) {
        iVar20 = 2;
      }
      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;
      pnVar8 = pnVar5->parent;
      pnVar4 = pnVar5;
      if (pnVar5->parent == (node234_conflict *)0x0) {
        return pvVar21;
      }
    }
    pnVar5->counts[0] = pnVar5->counts[0] + -1;
    pnVar8 = pnVar5->parent;
  } while( true );
LAB_0007e2c8:
  iVar20 = 2;
  goto LAB_0007e2cc;
}



int FUN_0007e08c(undefined4 *param_1,int param_2)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  int iVar10;
  undefined4 uVar11;
  int iVar12;
  undefined4 *puVar13;
  int iVar14;
  undefined4 *puVar15;
  int iVar16;
  int iVar17;
  
  iVar17 = 0;
  iVar16 = -1;
  puVar5 = (undefined4 *)*param_1;
joined_r0x0007e0e8:
  do {
    while( true ) {
      while( true ) {
        iVar3 = param_2;
        puVar9 = puVar5;
        if (puVar9 == (undefined4 *)0x0) {
          if (iVar17 == 0) {
            iVar17 = *(int *)(iVar16 * 4 + 0x24);
          }
          if (iVar16 == -1) {
            return 0;
          }
          goto LAB_0007e130;
        }
        if ((int)puVar9[5] <= iVar3) break;
        puVar13 = (undefined4 *)puVar9[1];
        puVar5 = puVar13;
        param_2 = iVar3;
        if (puVar13[10] == 0) {
          puVar15 = (undefined4 *)puVar9[2];
          iVar7 = 1;
          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {
            iVar10 = 0;
            iVar14 = 0;
            goto LAB_0007e740;
          }
          iVar3 = 0;
          goto LAB_0007e5d0;
        }
      }
      param_2 = iVar3 - (puVar9[5] + 1);
      if (param_2 < 0) break;
      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;
      iVar3 = param_2 - (puVar9[6] + 1);
      if (iVar3 < 0) {
        if (iVar17 == 0) {
          iVar17 = puVar9[10];
          iVar16 = 1;
        }
        else {
          iVar16 = 1;
        }
LAB_0007e130:
        puVar5 = (undefined4 *)*puVar9;
        iVar3 = puVar9[1];
        goto joined_r0x0007e264;
      }
      if (iVar3 < (int)puVar9[7]) {
        puVar5 = (undefined4 *)puVar9[3];
        iVar10 = 1;
        param_2 = iVar3;
        if (puVar5[10] == 0) {
          iVar7 = 2;
          goto LAB_0007e3d8;
        }
      }
      else {
        param_2 = iVar3 - (puVar9[7] + 1);
        if (param_2 < 0) {
          if (iVar17 == 0) {
            iVar17 = puVar9[0xb];
            iVar16 = 2;
          }
          else {
            iVar16 = 2;
          }
          goto LAB_0007e130;
        }
        puVar15 = (undefined4 *)puVar9[4];
        puVar5 = puVar15;
        if (puVar15[10] == 0) {
          puVar13 = (undefined4 *)puVar9[3];
          if (puVar13[10] == 0) {
            iVar10 = 2;
            iVar7 = 3;
            iVar14 = 8;
            goto LAB_0007e740;
          }
          iVar7 = 3;
          iVar14 = 8;
          goto LAB_0007e3f0;
        }
      }
    }
    if (iVar17 == 0) {
      iVar17 = puVar9[9];
    }
    iVar16 = 0;
    puVar5 = (undefined4 *)*puVar9;
    iVar3 = puVar9[1];
joined_r0x0007e264:
    if (puVar5 == (undefined4 *)0x0) {
      if (puVar9[10] == 0) {
        if (iVar3 == 0) {
          (*(code *)PTR_safefree_000b23d0)(puVar9);
          *param_1 = 0;
          return iVar17;
        }
      }
      else if (iVar3 == 0) {
        puVar5 = (undefined4 *)0x0;
        goto LAB_0007e284;
      }
    }
    else if ((iVar3 == 0) && (puVar9[10] != 0)) {
LAB_0007e284:
      if (iVar16 == 2) goto LAB_0007e2c8;
      iVar3 = puVar9[iVar16 + 10];
      iVar10 = iVar16 + 1;
      if (iVar3 == 0) goto LAB_0007e2cc;
      puVar13 = puVar9 + iVar16;
      goto LAB_0007e2bc;
    }
    puVar13 = puVar9 + iVar16;
    puVar5 = (undefined4 *)puVar13[1];
    iVar3 = iVar16 + 1;
    puVar4 = puVar5;
    if (puVar5[10] == 0) {
      puVar8 = (undefined4 *)puVar13[2];
      puVar4 = (undefined4 *)puVar8[1];
      puVar15 = puVar8;
      if (puVar8[10] == 0) {
        uVar11 = puVar13[9];
        uVar6 = puVar8[5];
        puVar5[3] = puVar4;
        puVar5[10] = uVar11;
        puVar5[7] = uVar6;
        if (puVar4 != (undefined4 *)0x0) {
          *puVar4 = puVar5;
        }
        puVar4 = (undefined4 *)puVar8[2];
        uVar6 = puVar8[6];
        puVar5[0xb] = puVar8[9];
        puVar5[4] = puVar4;
        puVar5[8] = uVar6;
        if (puVar4 != (undefined4 *)0x0) {
          *puVar4 = puVar5;
        }
        (*(code *)PTR_safefree_000b23d0)();
        uVar6 = FUN_0007d8c0(puVar5);
        puVar13[5] = uVar6;
        if (iVar16 == 2) {
LAB_0007e554:
          iVar3 = 3;
          iVar10 = 2;
LAB_0007e55c:
          puVar9[iVar10 + 9] = 0;
          puVar9[iVar3 + 1] = 0;
          puVar9[iVar3 + 5] = 0;
          iVar3 = puVar9[9];
        }
        else {
          iVar7 = puVar13[10];
          iVar10 = iVar16;
          if (iVar7 == 0) goto LAB_0007e55c;
          do {
            puVar13[9] = iVar7;
            puVar13[2] = puVar13[3];
            puVar13[6] = puVar13[7];
            if (iVar3 == 2) goto LAB_0007e554;
            iVar7 = puVar13[0xb];
            iVar3 = 2;
            puVar13 = puVar13 + 1;
          } while (iVar7 != 0);
          puVar9[10] = 0;
          puVar9[3] = 0;
          puVar9[7] = 0;
          iVar3 = puVar9[9];
        }
        puVar2 = PTR_safefree_000b23d0;
        if (iVar3 == 0) {
          *param_1 = puVar5;
          *puVar5 = 0;
          (*(code *)puVar2)(puVar9);
        }
        param_2 = puVar5[5] + puVar5[6] + 1;
      }
      else {
        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {
          puVar15 = puVar5;
          puVar4 = (undefined4 *)puVar5[1];
        }
        puVar13[9] = puVar15[9];
        puVar5 = puVar8;
        param_2 = 0;
      }
    }
    else {
      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {
        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||
               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {
          puVar4 = puVar15;
          puVar9 = (undefined4 *)puVar4[1];
          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;
        }
        puVar15 = puVar4 + 2;
        puVar4 = (undefined4 *)*puVar15;
        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {
          puVar4 = puVar9;
        }
      }
LAB_0007e21c:
      iVar3 = puVar4[0xb];
      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {
        iVar3 = puVar4[9];
      }
      puVar13[9] = iVar3;
      param_2 = puVar13[5] + -1;
    }
  } while( true );
LAB_0007e3bc:
  puVar5 = (undefined4 *)puVar9[2];
  iVar10 = 0;
  if (puVar5[10] == 0) {
    iVar7 = 1;
LAB_0007e3d8:
    iVar14 = iVar10 * 4;
    puVar13 = (undefined4 *)puVar9[iVar10 + 1];
    iVar3 = iVar7 * 4;
    if (puVar13[10] == 0) {
      puVar4 = puVar9 + iVar7;
      puVar15 = (undefined4 *)puVar4[2];
      iVar12 = iVar7 + 1;
      if (puVar15 == (undefined4 *)0x0) {
        puVar15 = (undefined4 *)puVar4[1];
        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;
      }
      else {
        if (puVar15[10] != 0) {
LAB_0007e5d0:
          iVar3 = (int)puVar9 + iVar3;
          uVar11 = puVar15[5];
          puVar13 = (undefined4 *)puVar15[1];
          uVar6 = *(undefined4 *)(iVar3 + 0x24);
          puVar5[3] = puVar13;
          puVar5[7] = uVar11;
          puVar5[10] = uVar6;
          if (puVar13 != (undefined4 *)0x0) {
            *puVar13 = puVar5;
          }
          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];
          puVar15[1] = puVar15[2];
          puVar15[5] = puVar15[6];
          if (puVar15[10] == 0) {
            iVar7 = 1;
            iVar10 = 0;
          }
          else {
            puVar15[2] = puVar15[3];
            puVar15[6] = puVar15[7];
            puVar15[9] = puVar15[10];
            if (puVar15[0xb] == 0) {
              iVar7 = 2;
              iVar10 = 1;
            }
            else {
              iVar7 = 3;
              iVar10 = 2;
              puVar15[10] = puVar15[0xb];
              puVar15[3] = puVar15[4];
              puVar15[7] = puVar15[8];
            }
          }
          puVar15[iVar7 + 1] = 0;
          puVar15[iVar7 + 5] = 0;
          puVar15[iVar10 + 9] = 0;
          uVar6 = FUN_0007d8c0(puVar5);
          *(undefined4 *)(iVar3 + 0x14) = uVar6;
          uVar6 = FUN_0007d8c0(puVar15);
          puVar9[iVar12 + 5] = uVar6;
          goto joined_r0x0007e0e8;
        }
        iVar10 = iVar7 + -1;
        puVar13 = (undefined4 *)*puVar4;
        puVar15 = (undefined4 *)puVar4[1];
        iVar14 = iVar10 * 4;
        iVar3 = param_2 + puVar4[4] + 1;
      }
LAB_0007e740:
      puVar15[4] = puVar15[2];
      puVar15[8] = puVar15[6];
      puVar15[3] = puVar15[1];
      puVar15[0xb] = puVar15[9];
      puVar15[7] = puVar15[5];
      uVar6 = puVar13[6];
      puVar5 = (undefined4 *)puVar13[2];
      puVar15[10] = puVar9[iVar10 + 9];
      puVar15[6] = uVar6;
      puVar15[2] = puVar5;
      if (puVar5 != (undefined4 *)0x0) {
        *puVar5 = puVar15;
      }
      puVar5 = (undefined4 *)puVar13[1];
      uVar6 = puVar13[5];
      puVar15[9] = puVar13[9];
      puVar15[1] = puVar5;
      puVar15[5] = uVar6;
      if (puVar5 != (undefined4 *)0x0) {
        *puVar5 = puVar15;
      }
      uVar6 = FUN_0007d8c0(puVar15);
      puVar2 = PTR_safefree_000b23d0;
      puVar9[iVar7 + 5] = uVar6;
      (*(code *)puVar2)(puVar13);
      iVar7 = ((int *)((int)puVar9 + iVar14))[2];
      piVar1 = (int *)((int)puVar9 + iVar14);
      while (iVar7 != 0) {
        iVar10 = iVar10 + 1;
        piVar1[1] = iVar7;
        piVar1[5] = piVar1[6];
        if (iVar10 == 3) {
          puVar9[0xb] = 0;
          puVar9[4] = 0;
          puVar9[8] = 0;
          goto LAB_0007e838;
        }
        piVar1[9] = piVar1[10];
        iVar7 = piVar1[3];
        piVar1 = piVar1 + 1;
      }
      puVar9[iVar10 + 1] = 0;
      puVar9[iVar10 + 5] = 0;
      puVar9[iVar10 + 9] = 0;
LAB_0007e838:
      puVar2 = PTR_safefree_000b23d0;
      puVar5 = puVar15;
      param_2 = iVar3;
      if (puVar9[9] == 0) {
        *param_1 = puVar15;
        *puVar15 = 0;
        (*(code *)puVar2)(puVar9);
      }
    }
    else {
LAB_0007e3f0:
      iVar10 = puVar13[0xb];
      iVar3 = 3;
      iVar12 = 1;
      if (iVar10 == 0) {
        iVar3 = 2;
      }
      puVar5[3] = puVar5[2];
      puVar5[7] = puVar5[6];
      puVar5[10] = puVar5[9];
      puVar5[2] = puVar5[1];
      puVar5[6] = puVar5[5];
      if (iVar10 != 0) {
        iVar12 = 2;
      }
      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);
      puVar4 = (undefined4 *)puVar13[iVar3 + 1];
      puVar5[1] = puVar4;
      puVar5[5] = puVar13[iVar3 + 5];
      if (puVar4 != (undefined4 *)0x0) {
        *puVar4 = puVar5;
      }
      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];
      puVar13[iVar3 + 1] = 0;
      puVar13[iVar3 + 5] = 0;
      puVar13[iVar12 + 9] = 0;
      uVar6 = FUN_0007d8c0(puVar5);
      puVar9[iVar7 + 5] = uVar6;
      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);
      iVar3 = FUN_0007d8c0(puVar13);
      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;
      param_2 = (param_2 + iVar10) - iVar3;
    }
  }
  goto joined_r0x0007e0e8;
  while( true ) {
    iVar3 = puVar13[0xb];
    iVar10 = 2;
    puVar13 = puVar13 + 1;
    if (iVar3 == 0) break;
LAB_0007e2bc:
    puVar13[9] = iVar3;
    if (iVar10 == 2) goto LAB_0007e2c8;
  }
  iVar16 = 1;
LAB_0007e2cc:
  puVar9[iVar16 + 9] = 0;
  do {
    puVar13 = puVar9;
    if (puVar5 == (undefined4 *)0x0) {
      return iVar17;
    }
    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {
      iVar16 = 3;
      if ((undefined4 *)puVar9[2] == puVar13) {
        iVar16 = 1;
      }
      else if ((undefined4 *)puVar9[3] == puVar13) {
        iVar16 = 2;
      }
      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;
      puVar5 = (undefined4 *)*puVar9;
      puVar13 = puVar9;
      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {
        return iVar17;
      }
    }
    puVar9[5] = puVar9[5] + -1;
    puVar5 = (undefined4 *)*puVar9;
  } while( true );
LAB_0007e2c8:
  iVar16 = 2;
  goto LAB_0007e2cc;
}


lui gp,0x4
addiu gp,gp,-0x3d1c
addu gp,gp,t9
addiu sp,sp,-0x40
sw s1,0x1c(sp)
sw s4,0x28(sp)
sw s8,0x38(sp)
or s8,zero,zero
sw s7,0x34(sp)
li s7,0x2
sw s6,0x30(sp)
li s6,-0x1
sw s3,0x24(sp)
or s3,a1,zero
sw gp,0x10(sp)
sw ra,0x3c(sp)
sw s5,0x2c(sp)
sw s2,0x20(sp)
sw s0,0x18(sp)
sw a0,0x40(sp)
lw s1,-0x7f58(gp)
lw s4,0x0(a0)
addiu s1,s1,-0x2740
beq s4,zero,0x0007e11c
_nop
lw v0,0x14(s4)
slt v1,s3,v0
beq v1,zero,0x0007e194
_addiu v0,v0,0x1
lw t0,0x4(s4)
lw v0,0x28(t0)
beq v0,zero,0x0007e5b4
_nop
or s4,t0,zero
bne s4,zero,0x0007e0f0
_nop
beq s8,zero,0x0007e3b4
_sll v0,s6,0x2
li v0,-0x1
beq s6,v0,0x0007e364
_lw ra,0x3c(sp)
lw v1,0x0(s4)
beq v1,zero,0x0007e26c
_lw v0,0x4(s4)
beq v0,zero,0x0007e3a0
_nop
sll v0,s6,0x2
addu s0,s4,v0
lw s2,0x4(s0)
lw v0,0x28(s2)
bne v0,zero,0x0007e1f4
_addiu s5,s6,0x1
lw a0,0x8(s0)
lw v1,0x28(a0)
beq v1,zero,0x0007e4b8
_lw v0,0x4(a0)
b 0x0007e17c
_or v1,a0,zero
or v1,v0,zero
lw v0,0x4(v0)
bne v0,zero,0x0007e174
_or s4,a0,zero
lw v0,0x24(v1)
or s3,zero,zero
b 0x0007e0e8
_sw v0,0x24(s0)
subu s3,s3,v0
bltz s3,0x0007e254
_nop
lw v0,0x18(s4)
slt v1,s3,v0
bne v1,zero,0x0007e3bc
_addiu v0,v0,0x1
subu s3,s3,v0
bltz s3,0x0007e6c4
_nop
lw v0,0x1c(s4)
slt v1,s3,v0
bne v1,zero,0x0007e720
_addiu v0,v0,0x1
subu v0,s3,v0
bltz v0,0x0007e874
_nop
lw s2,0x10(s4)
lw v1,0x28(s2)
beq v1,zero,0x0007e8ac
_nop
or s4,s2,zero
b 0x0007e0e8
_or s3,v0,zero
or v0,s2,zero
lw a0,0x4(v0)
beq a0,zero,0x0007e21c
_nop
lw v1,0x10(v0)
beq v1,zero,0x0007e23c
_nop
lw a0,0x4(v1)
bne a0,zero,0x0007e204
_or v0,v1,zero
lw v1,0x2c(v0)
beq v1,zero,0x0007e5a0
_nop
lw a1,0x14(s0)
or s4,s2,zero
sw v1,0x24(s0)
b 0x0007e0e8
_addiu s3,a1,-0x1
lw v1,0xc(v0)
bne v1,zero,0x0007e210
_nop
lw v0,0x8(v0)
b 0x0007e1f8
_movz v0,a0,v0
beq s8,zero,0x0007e394
_nop
or s6,zero,zero
lw v1,0x0(s4)
bne v1,zero,0x0007e13c
_lw v0,0x4(s4)
lw v1,0x28(s4)
beq v1,zero,0x0007e6a0
_nop
bne v0,zero,0x0007e144
_nop
li v1,0x2
beq s6,v1,0x0007e2c8
_addiu v1,s6,0x9
sll v1,v1,0x2
addu v1,s4,v1
lw a0,0x4(v1)
beq a0,zero,0x0007e2cc
_addiu a1,s6,0x1
sll v1,s6,0x2
li a2,0x2
b 0x0007e2bc
_addu v1,s4,v1
lw a0,0x28(v1)
beq a0,zero,0x0007e8cc
_li a1,0x2
addiu v1,v1,0x4
bne a1,a2,0x0007e2b0
_sw a0,0x20(v1)
li s6,0x2
addiu v1,s6,0x8
sll v1,v1,0x2
addu v1,s4,v1
beq v0,zero,0x0007e35c
_sw zero,0x4(v1)
li a2,0x2
b 0x0007e32c
_li a1,0x3
lw v1,0x8(v0)
beq v1,s4,0x0007e89c
_or a0,a1,zero
lw v1,0xc(v0)
xor v1,v1,s4
movz a0,a2,v1
or v1,a0,zero
sll v1,v1,0x2
or s4,v0,zero
addu v1,v0,v1
lw a0,0x14(v1)
addiu a0,a0,-0x1
sw a0,0x14(v1)
lw v0,0x0(v0)
beq v0,zero,0x0007e35c
_nop
lw v1,0x4(v0)
bne v1,s4,0x0007e2ec
_or v1,zero,zero
or s4,v0,zero
sll v1,v1,0x2
addu v1,v0,v1
lw a0,0x14(v1)
addiu a0,a0,-0x1
sw a0,0x14(v1)
lw v0,0x0(v0)
bne v0,zero,0x0007e32c
_nop
or s4,s8,zero
lw ra,0x3c(sp)
or v0,s4,zero
lw s8,0x38(sp)
lw s7,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x40
lw s8,0x24(s4)
b 0x0007e260
_or s6,zero,zero
lw v0,0x28(s4)
beq v0,zero,0x0007e144
_or v0,v1,zero
b 0x0007e284
_li v1,0x2
b 0x0007e124
_lw s8,0x24(v0)
lw s2,0x8(s4)
lw v0,0x28(s2)
beq v0,zero,0x0007e3d4
_or s5,zero,zero
b 0x0007e0e8
_or s4,s2,zero
li t1,0x1
sll s0,s5,0x2
addu v1,s4,s0
lw t0,0x4(v1)
lw v0,0x28(t0)
beq v0,zero,0x0007e8fc
_sll v0,t1,0x2
lw v1,0x2c(t0)
li v0,0x3
lw t2,0x4(s2)
addu s0,s4,s0
lw a0,0x14(s2)
li a1,0x1
movz v0,s7,v1
lw t5,0x8(s2)
lw t4,0x18(s2)
lw t3,0x24(s2)
sll v0,v0,0x2
sw t5,0xc(s2)
sw t4,0x1c(s2)
addu v0,t0,v0
sw t3,0x28(s2)
sw t2,0x8(s2)
sw a0,0x18(s2)
lw a0,0x24(s0)
movn a1,s7,v1
sw a0,0x24(s2)
lw a0,0x4(v0)
or v1,a1,zero
sw a0,0x4(s2)
lw t2,0x14(v0)
beq a0,zero,0x0007e45c
_sw t2,0x14(s2)
sw s2,0x0(a0)
sll v1,v1,0x2
or a0,s2,zero
addu v1,t0,v1
or t9,s1,zero
lw t2,0x24(v1)
sw t2,0x24(s0)
sw zero,0x4(v0)
sw zero,0x14(v0)
bal 0x0007d8c0
_sw zero,0x24(v1)
addiu v1,t1,0x4
or a0,t0,zero
sll v1,v1,0x2
addu s4,s4,v1
sw v0,0x4(s4)
or s4,s2,zero
lw t0,0x14(s0)
bal 0x0007d8c0
_addu s3,s3,t0
lw gp,0x10(sp)
subu s3,s3,v0
b 0x0007e0e8
_sw v0,0x14(s0)
lw a1,0x24(s0)
lw v1,0x14(a0)
sw v0,0xc(s2)
sw a1,0x28(s2)
beq v0,zero,0x0007e4d4
_sw v1,0x1c(s2)
sw s2,0x0(v0)
lw a1,0x24(a0)
lw v0,0x8(a0)
lw v1,0x18(a0)
sw a1,0x2c(s2)
sw v0,0x10(s2)
beq v0,zero,0x0007e4f4
_sw v1,0x20(s2)
sw s2,0x0(v0)
lw t9,-0x7fa0(gp)
jalr t9
_nop
or t9,s1,zero
bal 0x0007d8c0
_or a0,s2,zero
lw gp,0x10(sp)
beq s6,s7,0x0007e554
_sw v0,0x14(s0)
lw v1,0x28(s0)
beq v1,zero,0x0007e8a4
_nop
b 0x0007e538
_or v0,s0,zero
lw v1,0x28(v0)
beq v1,zero,0x0007e6d4
_li s5,0x2
addiu v0,v0,0x4
lw a1,0x8(v0)
lw a0,0x18(v0)
sw v1,0x20(v0)
sw a1,0x4(v0)
bne s5,s7,0x0007e52c
_sw a0,0x14(v0)
li s5,0x3
li v0,0x2
addiu v0,v0,0x8
sll s5,s5,0x2
sll v0,v0,0x2
addu s5,s4,s5
addu v0,s4,v0
sw zero,0x4(v0)
sw zero,0x4(s5)
sw zero,0x14(s5)
lw v0,0x24(s4)
beq v0,zero,0x0007e704
_lw v0,0x40(sp)
lw a1,0x14(s2)
or s4,s2,zero
lw v0,0x18(s2)
addu a1,a1,v0
b 0x0007e0e8
_addiu s3,a1,0x1
lw v1,0x28(v0)
bne v1,zero,0x0007e228
_nop
b 0x0007e228
_lw v1,0x24(v0)
lw s2,0x8(s4)
beq s2,zero,0x0007e738
_li t1,0x1
lw v0,0x28(s2)
beq v0,zero,0x0007e738
_li a3,0x1
or v0,zero,zero
addu t1,s4,v0
lw a0,0x14(s2)
lw v0,0x4(s2)
lw v1,0x24(t1)
sw v0,0xc(t0)
sw a0,0x1c(t0)
beq v0,zero,0x0007e5f4
_sw v1,0x28(t0)
sw t0,0x0(v0)
lw v0,0x24(s2)
sw v0,0x24(t1)
lw a0,0x8(s2)
lw v1,0x18(s2)
lw v0,0x28(s2)
sw a0,0x4(s2)
beq v0,zero,0x0007e8e0
_sw v1,0x14(s2)
lw t2,0xc(s2)
lw v1,0x1c(s2)
lw a0,0x2c(s2)
sw t2,0x8(s2)
sw v1,0x18(s2)
beq a0,zero,0x0007e8d4
_sw v0,0x24(s2)
lw t3,0x10(s2)
li v1,0x3
lw t2,0x20(s2)
li v0,0x2
sw a0,0x28(s2)
sw t3,0xc(s2)
sw t2,0x1c(s2)
addiu v0,v0,0x8
sll v1,v1,0x2
sll v0,v0,0x2
addu v1,s2,v1
addu v0,s2,v0
or a0,t0,zero
sw zero,0x4(v1)
or t9,s1,zero
sw zero,0x14(v1)
bal 0x0007d8c0
_sw zero,0x4(v0)
or a0,s2,zero
bal 0x0007d8c0
_sw v0,0x14(t1)
addiu v1,a3,0x4
lw gp,0x10(sp)
sll v1,v1,0x2
addu v1,s4,v1
or s4,t0,zero
b 0x0007e0e8
_sw v0,0x4(v1)
bne v0,zero,0x0007e148
_sll v0,s6,0x2
lw t9,-0x7fa0(gp)
or a0,s4,zero
jalr t9
_or s4,s8,zero
lw v0,0x40(sp)
b 0x0007e360
_sw zero,0x0(v0)
beq s8,zero,0x0007e884
_nop
b 0x0007e130
_li s6,0x1
li v0,0x1
sll s5,s5,0x2
addiu v0,v0,0x8
addu s5,s4,s5
sll v0,v0,0x2
addu v0,s4,v0
sw zero,0x4(v0)
sw zero,0x4(s5)
sw zero,0x14(s5)
lw v0,0x24(s4)
bne v0,zero,0x0007e588
_lw v0,0x40(sp)
or a0,s4,zero
lw t9,-0x7fa0(gp)
sw s2,0x0(v0)
jalr t9
_sw zero,0x0(s2)
b 0x0007e588
_lw gp,0x10(sp)
lw s2,0xc(s4)
lw v0,0x28(s2)
bne v0,zero,0x0007e3cc
_li s5,0x1
b 0x0007e3d8
_li t1,0x2
or s5,zero,zero
or s0,zero,zero
addiu v0,s5,0x8
lw t3,0x8(s2)
lw a3,0x18(s2)
sll v0,v0,0x2
lw a0,0x24(s2)
lw v1,0x14(s2)
lw t2,0x4(s2)
addu v0,s4,v0
sw t3,0x10(s2)
sw a3,0x20(s2)
sw t2,0xc(s2)
sw a0,0x2c(s2)
sw v1,0x1c(s2)
lw a0,0x4(v0)
lw v1,0x18(t0)
lw v0,0x8(t0)
sw a0,0x28(s2)
sw v1,0x18(s2)
beq v0,zero,0x0007e794
_sw v0,0x8(s2)
sw s2,0x0(v0)
lw a0,0x24(t0)
lw v0,0x4(t0)
lw v1,0x14(t0)
sw a0,0x24(s2)
sw v0,0x4(s2)
beq v0,zero,0x0007e7b4
_sw v1,0x14(s2)
sw s2,0x0(v0)
or t9,s1,zero
bal 0x0007d8c0
_or a0,s2,zero
addiu v1,t1,0x4
lw gp,0x10(sp)
or a0,t0,zero
sll v1,v1,0x2
addu v1,s4,v1
lw t9,-0x7fa0(gp)
jalr t9
_sw v0,0x4(v1)
addu v0,s4,s0
lw gp,0x10(sp)
li t0,0x3
lw v1,0x8(v0)
beq v1,zero,0x0007e824
_addiu a0,s5,0x1
lw a3,0x18(v0)
addiu v0,v0,0x4
or s5,a0,zero
sw v1,0x0(v0)
beq a0,t0,0x0007e864
_sw a3,0x10(v0)
lw v1,0x24(v0)
sw v1,0x20(v0)
lw v1,0x8(v0)
bne v1,zero,0x0007e7f8
_addiu a0,s5,0x1
sll v0,s5,0x2
addu v0,s4,v0
sw zero,0x4(v0)
sw zero,0x14(v0)
sw zero,0x24(v0)
lw v0,0x24(s4)
bne v0,zero,0x0007e3cc
_lw v0,0x40(sp)
or a0,s4,zero
lw t9,-0x7fa0(gp)
or s4,s2,zero
sw s2,0x0(v0)
jalr t9
_sw zero,0x0(s2)
b 0x0007e0e8
_lw gp,0x10(sp)
sw zero,0x2c(s4)
sw zero,0x10(s4)
b 0x0007e838
_sw zero,0x20(s4)
beq s8,zero,0x0007e890
_nop
b 0x0007e130
_li s6,0x2
lw s8,0x28(s4)
b 0x0007e130
_li s6,0x1
lw s8,0x2c(s4)
b 0x0007e130
_li s6,0x2
b 0x0007e308
_li v1,0x1
b 0x0007e55c
_or v0,s6,zero
lw t0,0xc(s4)
lw v1,0x28(t0)
bne v1,zero,0x0007e8ec
_nop
li s5,0x2
li t1,0x3
b 0x0007e740
_li s0,0x8
b 0x0007e2cc
_li s6,0x1
li v1,0x2
b 0x0007e64c
_li v0,0x1
li v1,0x1
b 0x0007e64c
_or v0,zero,zero
li t1,0x3
li s0,0x8
b 0x0007e3f0
_or s3,v0,zero
addu a0,s4,v0
lw t2,0x8(a0)
beq t2,zero,0x0007e944
_addiu a3,t1,0x1
lw v1,0x28(t2)
beq v1,zero,0x0007e924
_nop
or t0,s2,zero
b 0x0007e5d0
_or s2,t2,zero
lw v0,0x10(a0)
addiu s5,t1,-0x1
lw t0,0x0(a0)
lw s2,0x4(a0)
sll s0,s5,0x2
addiu v0,v0,0x1
b 0x0007e740
_addu s3,s3,v0
lw v0,0x14(v1)
lw s2,0x4(a0)
addiu v0,v0,0x1
b 0x0007e740
_addu s3,s3,v0
(translation_unit "int FUN_0007e08c(undefined4 *param_1,int param_2)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}\n\n" (function_definition "int FUN_0007e08c(undefined4 *param_1,int param_2)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" primitive_type (function_declarator "FUN_0007e08c(undefined4 *param_1,int param_2)" identifier (parameter_list "(undefined4 *param_1,int param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "joined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  }" { (while_statement "while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" { (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" { (expression_statement "iVar17 = *(int *)(iVar16 * 4 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar16 * 4 + 0x24)" identifier = (pointer_expression "*(int *)(iVar16 * 4 + 0x24)" * (cast_expression "(int *)(iVar16 * 4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 * 4 + 0x24)" ( (binary_expression "iVar16 * 4 + 0x24" (binary_expression "iVar16 * 4" identifier * number_literal) + number_literal) ))))) ;) })) (if_statement "if (iVar16 == -1) {\n            return 0;\n          }" if (parenthesized_expression "(iVar16 == -1)" ( (binary_expression "iVar16 == -1" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (if_statement "if ((int)puVar9[5] <= iVar3) break;" if (parenthesized_expression "((int)puVar9[5] <= iVar3)" ( (binary_expression "(int)puVar9[5] <= iVar3" (cast_expression "(int)puVar9[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[5]" identifier [ number_literal ])) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar13 = (undefined4 *)puVar9[1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[1]" identifier = (cast_expression "(undefined4 *)puVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" identifier = identifier) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" { (expression_statement "puVar15 = (undefined4 *)puVar9[2];" (assignment_expression "puVar15 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (if_statement "if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0))" ( (binary_expression "(puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 = 1, puVar15[10] == 0)" ( (comma_expression "iVar12 = 1, puVar15[10] == 0" (assignment_expression "iVar12 = 1" identifier = number_literal) , (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e5d0;" goto statement_identifier ;) })) })) (expression_statement "param_2 = iVar3 - (puVar9[5] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[5] + 1)" identifier = (binary_expression "iVar3 - (puVar9[5] + 1)" identifier - (parenthesized_expression "(puVar9[5] + 1)" ( (binary_expression "puVar9[5] + 1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (param_2 < 0) break;" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;" if (parenthesized_expression "(param_2 < (int)puVar9[6])" ( (binary_expression "param_2 < (int)puVar9[6]" identifier < (cast_expression "(int)puVar9[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0007e3bc;" goto statement_identifier ;)) (expression_statement "iVar3 = param_2 - (puVar9[6] + 1);" (assignment_expression "iVar3 = param_2 - (puVar9[6] + 1)" identifier = (binary_expression "param_2 - (puVar9[6] + 1)" identifier - (parenthesized_expression "(puVar9[6] + 1)" ( (binary_expression "puVar9[6] + 1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" { (if_statement "if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }" { (expression_statement "iVar17 = puVar9[10];" (assignment_expression "iVar17 = puVar9[10]" identifier = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar16 = 1;\n        }" else (compound_statement "{\n          iVar16 = 1;\n        }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;)) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0007e264;" goto statement_identifier ;) })) (if_statement "if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" if (parenthesized_expression "(iVar3 < (int)puVar9[7])" ( (binary_expression "iVar3 < (int)puVar9[7]" identifier < (cast_expression "(int)puVar9[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[7]" identifier [ number_literal ]))) )) (compound_statement "{\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)puVar9[3];" (assignment_expression "puVar5 = (undefined4 *)puVar9[3]" identifier = (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3d8;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" else (compound_statement "{\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" { (expression_statement "param_2 = iVar3 - (puVar9[7] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[7] + 1)" identifier = (binary_expression "iVar3 - (puVar9[7] + 1)" identifier - (parenthesized_expression "(puVar9[7] + 1)" ( (binary_expression "puVar9[7] + 1" (subscript_expression "puVar9[7]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }" { (expression_statement "iVar17 = puVar9[0xb];" (assignment_expression "iVar17 = puVar9[0xb]" identifier = (subscript_expression "puVar9[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            iVar16 = 2;\n          }" else (compound_statement "{\n            iVar16 = 2;\n          }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (expression_statement "puVar15 = (undefined4 *)puVar9[4];" (assignment_expression "puVar15 = (undefined4 *)puVar9[4]" identifier = (cast_expression "(undefined4 *)puVar9[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[4]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (if_statement "if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" if (parenthesized_expression "(puVar15[10] == 0)" ( (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" { (expression_statement "puVar13 = (undefined4 *)puVar9[3];" (assignment_expression "puVar13 = (undefined4 *)puVar9[3]" identifier = (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3f0;" goto statement_identifier ;) })) }))) })) (if_statement "if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar17 = puVar9[9];\n    }" { (expression_statement "iVar17 = puVar9[9];" (assignment_expression "iVar17 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" statement_identifier : (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }" { (if_statement "if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(puVar9[10] == 0)" ( (binary_expression "puVar9[10] == 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" { (expression_statement "(*(code *)PTR_safefree_000b23d0)(puVar9);" (call_expression "(*(code *)PTR_safefree_000b23d0)(puVar9)" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (return_statement "return iVar17;" return identifier ;) })) }) (else_clause "else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" else (if_statement "if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" { (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0007e284;" goto statement_identifier ;) })))) }) (else_clause "else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" else (if_statement "if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "((iVar3 == 0) && (puVar9[10] != 0))" ( (binary_expression "(iVar3 == 0) && (puVar9[10] != 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar9[10] != 0)" ( (binary_expression "puVar9[10] != 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" { (labeled_statement "LAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;" statement_identifier : (if_statement "if (iVar16 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;))) (expression_statement "iVar3 = puVar9[iVar16 + 10];" (assignment_expression "iVar3 = puVar9[iVar16 + 10]" identifier = (subscript_expression "puVar9[iVar16 + 10]" identifier [ (binary_expression "iVar16 + 10" identifier + number_literal) ])) ;) (expression_statement "iVar10 = iVar16 + 1;" (assignment_expression "iVar10 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) goto LAB_0007e2cc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;)) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" identifier = (binary_expression "puVar9 + iVar16" identifier + identifier)) ;) (goto_statement "goto LAB_0007e2bc;" goto statement_identifier ;) }))))) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" identifier = (binary_expression "puVar9 + iVar16" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = iVar16 + 1;" (assignment_expression "iVar3 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }" { (expression_statement "puVar8 = (undefined4 *)puVar13[2];" (assignment_expression "puVar8 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (undefined4 *)puVar8[1];" (assignment_expression "puVar4 = (undefined4 *)puVar8[1]" identifier = (cast_expression "(undefined4 *)puVar8[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = puVar8;" (assignment_expression "puVar15 = puVar8" identifier = identifier) ;) (if_statement "if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" if (parenthesized_expression "(puVar8[10] == 0)" ( (binary_expression "puVar8[10] == 0" (subscript_expression "puVar8[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }" { (expression_statement "uVar11 = puVar13[9];" (assignment_expression "uVar11 = puVar13[9]" identifier = (subscript_expression "puVar13[9]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar8[5];" (assignment_expression "uVar6 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = puVar4;" (assignment_expression "puVar5[3] = puVar4" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = uVar11;" (assignment_expression "puVar5[10] = uVar11" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = uVar6;" (assignment_expression "puVar5[7] = uVar6" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *puVar4 = puVar5;\n        }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "puVar4 = (undefined4 *)puVar8[2];" (assignment_expression "puVar4 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = puVar8[6];" (assignment_expression "uVar6 = puVar8[6]" identifier = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xb] = puVar8[9];" (assignment_expression "puVar5[0xb] = puVar8[9]" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (subscript_expression "puVar8[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = puVar4;" (assignment_expression "puVar5[4] = puVar4" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[8] = uVar6;" (assignment_expression "puVar5[8] = uVar6" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *puVar4 = puVar5;\n        }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_safefree_000b23d0)();" (call_expression "(*(code *)PTR_safefree_000b23d0)()" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "puVar13[5] = uVar6;" (assignment_expression "puVar13[5] = uVar6" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }" { (labeled_statement "LAB_0007e554:\n          iVar3 = 3;" statement_identifier : (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" identifier = number_literal) ;)) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;" statement_identifier : (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;)) (expression_statement "puVar9[iVar3 + 1] = 0;" (assignment_expression "puVar9[iVar3 + 1] = 0" (subscript_expression "puVar9[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar3 + 5] = 0;" (assignment_expression "puVar9[iVar3 + 5] = 0" (subscript_expression "puVar9[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" else (compound_statement "{\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" { (expression_statement "iVar7 = puVar13[10];" (assignment_expression "iVar7 = puVar13[10]" identifier = (subscript_expression "puVar13[10]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_0007e55c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007e55c;" goto statement_identifier ;)) (do_statement "do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);" do (compound_statement "{\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          }" { (expression_statement "puVar13[9] = iVar7;" (assignment_expression "puVar13[9] = iVar7" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = puVar13[3];" (assignment_expression "puVar13[2] = puVar13[3]" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[6] = puVar13[7];" (assignment_expression "puVar13[6] = puVar13[7]" (subscript_expression "puVar13[6]" identifier [ number_literal ]) = (subscript_expression "puVar13[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 2) goto LAB_0007e554;" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e554;" goto statement_identifier ;)) (expression_statement "iVar7 = puVar13[0xb];" (assignment_expression "iVar7 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "puVar9[10] = 0;" (assignment_expression "puVar9[10] = 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0;" (assignment_expression "puVar9[3] = 0" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[7] = 0;" (assignment_expression "puVar9[7] = 0" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" { (expression_statement "*param_1 = puVar5;" (assignment_expression "*param_1 = puVar5" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) })) (expression_statement "param_2 = puVar5[5] + puVar5[6] + 1;" (assignment_expression "param_2 = puVar5[5] + puVar5[6] + 1" identifier = (binary_expression "puVar5[5] + puVar5[6] + 1" (binary_expression "puVar5[5] + puVar5[6]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (subscript_expression "puVar5[6]" identifier [ number_literal ])) + number_literal)) ;) }) (else_clause "else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" else (compound_statement "{\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" { (while_statement "while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" while (parenthesized_expression "(puVar5 = puVar4, puVar5 != (undefined4 *)0x0)" ( (comma_expression "puVar5 = puVar4, puVar5 != (undefined4 *)0x0" (assignment_expression "puVar5 = puVar4" identifier = identifier) , (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" { (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" identifier = identifier) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[1];" (assignment_expression "puVar4 = (undefined4 *)puVar5[1]" identifier = (cast_expression "(undefined4 *)puVar5[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar13[9] = puVar15[9];" (assignment_expression "puVar13[9] = puVar15[9]" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" identifier = identifier) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" else (compound_statement "{\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" { (while_statement "while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" while (parenthesized_expression "(puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0)" ( (comma_expression "puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) , (binary_expression "puVar9 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" { (while_statement "while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" while (parenthesized_expression "((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)))" ( (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))" ( (comma_expression "puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (assignment_expression "puVar15 = (undefined4 *)puVar4[4]" identifier = (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ]))) , (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" ( (comma_expression "puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0" (assignment_expression "puVar15 = (undefined4 *)puVar4[3]" identifier = (cast_expression "(undefined4 *)puVar4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[3]" identifier [ number_literal ]))) , (binary_expression "(undefined4 *)puVar4[3] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[3]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" { (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" identifier = identifier) ;) (expression_statement "puVar9 = (undefined4 *)puVar4[1];" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007e21c;" goto statement_identifier ;)) })) (expression_statement "puVar15 = puVar4 + 2;" (assignment_expression "puVar15 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)*puVar15;" (assignment_expression "puVar4 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (if_statement "if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }" if (parenthesized_expression "((undefined4 *)*puVar15 == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar15 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar4 = puVar9;\n        }" { (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) })) })) (labeled_statement "LAB_0007e21c:\n      iVar3 = puVar4[0xb];" statement_identifier : (expression_statement "iVar3 = puVar4[0xb];" (assignment_expression "iVar3 = puVar4[0xb]" identifier = (subscript_expression "puVar4[0xb]" identifier [ number_literal ])) ;)) (if_statement "if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }" if (parenthesized_expression "((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = puVar4[10], iVar3 == 0)" ( (comma_expression "iVar3 = puVar4[10], iVar3 == 0" (assignment_expression "iVar3 = puVar4[10]" identifier = (subscript_expression "puVar4[10]" identifier [ number_literal ])) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar3 = puVar4[9];\n      }" { (expression_statement "iVar3 = puVar4[9];" (assignment_expression "iVar3 = puVar4[9]" identifier = (subscript_expression "puVar4[9]" identifier [ number_literal ])) ;) })) (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = puVar13[5] + -1;" (assignment_expression "param_2 = puVar13[5] + -1" identifier = (binary_expression "puVar13[5] + -1" (subscript_expression "puVar13[5]" identifier [ number_literal ]) + number_literal)) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];" statement_identifier : (expression_statement "puVar5 = (undefined4 *)puVar9[2];" (assignment_expression "puVar5 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e3d8:\n    iVar14 = iVar10 * 4;" statement_identifier : (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;)) (expression_statement "puVar13 = (undefined4 *)puVar9[iVar10 + 1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[iVar10 + 1]" identifier = (cast_expression "(undefined4 *)puVar9[iVar10 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[iVar10 + 1]" identifier [ (binary_expression "iVar10 + 1" identifier + number_literal) ]))) ;) (expression_statement "iVar3 = iVar7 * 4;" (assignment_expression "iVar3 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (if_statement "if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }" { (expression_statement "puVar4 = puVar9 + iVar7;" (assignment_expression "puVar4 = puVar9 + iVar7" identifier = (binary_expression "puVar9 + iVar7" identifier + identifier)) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[2]" identifier = (cast_expression "(undefined4 *)puVar4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = iVar7 + 1;" (assignment_expression "iVar12 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }" { (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = param_2 + puVar9[iVar10 + 5] + 1;" (assignment_expression "iVar3 = param_2 + puVar9[iVar10 + 5] + 1" identifier = (binary_expression "param_2 + puVar9[iVar10 + 5] + 1" (binary_expression "param_2 + puVar9[iVar10 + 5]" identifier + (subscript_expression "puVar9[iVar10 + 5]" identifier [ (binary_expression "iVar10 + 5" identifier + number_literal) ])) + number_literal)) ;) }) (else_clause "else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" else (compound_statement "{\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" { (if_statement "if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" if (parenthesized_expression "(puVar15[10] != 0)" ( (binary_expression "puVar15[10] != 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" { (labeled_statement "LAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;" statement_identifier : (expression_statement "iVar3 = (int)puVar9 + iVar3;" (assignment_expression "iVar3 = (int)puVar9 + iVar3" identifier = (binary_expression "(int)puVar9 + iVar3" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;)) (expression_statement "uVar11 = puVar15[5];" (assignment_expression "uVar11 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)puVar15[1];" (assignment_expression "puVar13 = (undefined4 *)puVar15[1]" identifier = (cast_expression "(undefined4 *)puVar15[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(undefined4 *)(iVar3 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar5[3] = puVar13;" (assignment_expression "puVar5[3] = puVar13" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = uVar11;" (assignment_expression "puVar5[7] = uVar11" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = uVar6;" (assignment_expression "puVar5[10] = uVar6" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *puVar13 = puVar5;\n          }" { (expression_statement "*puVar13 = puVar5;" (assignment_expression "*puVar13 = puVar5" (pointer_expression "*puVar13" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar3 + 0x24) = puVar15[9];" (assignment_expression "*(undefined4 *)(iVar3 + 0x24) = puVar15[9]" (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[1] = puVar15[2];" (assignment_expression "puVar15[1] = puVar15[2]" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[5] = puVar15[6];" (assignment_expression "puVar15[5] = puVar15[6]" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = (subscript_expression "puVar15[6]" identifier [ number_literal ])) ;) (if_statement "if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" if (parenthesized_expression "(puVar15[10] == 0)" ( (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar7 = 1;\n            iVar10 = 0;\n          }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" else (compound_statement "{\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" { (expression_statement "puVar15[2] = puVar15[3];" (assignment_expression "puVar15[2] = puVar15[3]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[6] = puVar15[7];" (assignment_expression "puVar15[6] = puVar15[7]" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "puVar15[9] = puVar15[10];" (assignment_expression "puVar15[9] = puVar15[10]" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (subscript_expression "puVar15[10]" identifier [ number_literal ])) ;) (if_statement "if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" if (parenthesized_expression "(puVar15[0xb] == 0)" ( (binary_expression "puVar15[0xb] == 0" (subscript_expression "puVar15[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              iVar7 = 2;\n              iVar10 = 1;\n            }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" else (compound_statement "{\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" { (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "puVar15[10] = puVar15[0xb];" (assignment_expression "puVar15[10] = puVar15[0xb]" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar15[4];" (assignment_expression "puVar15[3] = puVar15[4]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "puVar15[7] = puVar15[8];" (assignment_expression "puVar15[7] = puVar15[8]" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) }))) }))) (expression_statement "puVar15[iVar7 + 1] = 0;" (assignment_expression "puVar15[iVar7 + 1] = 0" (subscript_expression "puVar15[iVar7 + 1]" identifier [ (binary_expression "iVar7 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar15[iVar7 + 5] = 0;" (assignment_expression "puVar15[iVar7 + 5] = 0" (subscript_expression "puVar15[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar15[iVar10 + 9] = 0;" (assignment_expression "puVar15[iVar10 + 9] = 0" (subscript_expression "puVar15[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" identifier = (call_expression "FUN_0007d8c0(puVar15)" identifier (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "puVar9[iVar12 + 5] = uVar6;" (assignment_expression "puVar9[iVar12 + 5] = uVar6" (subscript_expression "puVar9[iVar12 + 5]" identifier [ (binary_expression "iVar12 + 5" identifier + number_literal) ]) = identifier) ;) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar7 + -1;" (assignment_expression "iVar10 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)*puVar4;" (assignment_expression "puVar13 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;) (expression_statement "iVar3 = param_2 + puVar4[4] + 1;" (assignment_expression "iVar3 = param_2 + puVar4[4] + 1" identifier = (binary_expression "param_2 + puVar4[4] + 1" (binary_expression "param_2 + puVar4[4]" identifier + (subscript_expression "puVar4[4]" identifier [ number_literal ])) + number_literal)) ;) }))) (labeled_statement "LAB_0007e740:\n      puVar15[4] = puVar15[2];" statement_identifier : (expression_statement "puVar15[4] = puVar15[2];" (assignment_expression "puVar15[4] = puVar15[2]" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;)) (expression_statement "puVar15[8] = puVar15[6];" (assignment_expression "puVar15[8] = puVar15[6]" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = (subscript_expression "puVar15[6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar15[1];" (assignment_expression "puVar15[3] = puVar15[1]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15[0xb] = puVar15[9];" (assignment_expression "puVar15[0xb] = puVar15[9]" (subscript_expression "puVar15[0xb]" identifier [ number_literal ]) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[7] = puVar15[5];" (assignment_expression "puVar15[7] = puVar15[5]" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar13[6];" (assignment_expression "uVar6 = puVar13[6]" identifier = (subscript_expression "puVar13[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = (undefined4 *)puVar13[2];" (assignment_expression "puVar5 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[10] = puVar9[iVar10 + 9];" (assignment_expression "puVar15[10] = puVar9[iVar10 + 9]" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ])) ;) (expression_statement "puVar15[6] = uVar6;" (assignment_expression "puVar15[6] = uVar6" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = puVar5;" (assignment_expression "puVar15[2] = puVar5" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar5 = puVar15;\n      }" { (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" * identifier) = identifier) ;) })) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = puVar13[5];" (assignment_expression "uVar6 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[9] = puVar13[9];" (assignment_expression "puVar15[9] = puVar13[9]" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (subscript_expression "puVar13[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[1] = puVar5;" (assignment_expression "puVar15[1] = puVar5" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[5] = uVar6;" (assignment_expression "puVar15[5] = uVar6" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar5 = puVar15;\n      }" { (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" * identifier) = identifier) ;) })) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" identifier = (call_expression "FUN_0007d8c0(puVar15)" identifier (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(puVar13);" (call_expression "(*(code *)puVar2)(puVar13)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "iVar7 = ((int *)((int)puVar9 + iVar14))[2];" (assignment_expression "iVar7 = ((int *)((int)puVar9 + iVar14))[2]" identifier = (subscript_expression "((int *)((int)puVar9 + iVar14))[2]" (parenthesized_expression "((int *)((int)puVar9 + iVar14))" ( (cast_expression "(int *)((int)puVar9 + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14)" ( (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "piVar1 = (int *)((int)puVar9 + iVar14);" (assignment_expression "piVar1 = (int *)((int)puVar9 + iVar14)" identifier = (cast_expression "(int *)((int)puVar9 + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14)" ( (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (while_statement "while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar1[1] = iVar7;" (assignment_expression "piVar1[1] = iVar7" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[5] = piVar1[6];" (assignment_expression "piVar1[5] = piVar1[6]" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = (subscript_expression "piVar1[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" if (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) (compound_statement "{\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" { (expression_statement "puVar9[0xb] = 0;" (assignment_expression "puVar9[0xb] = 0" (subscript_expression "puVar9[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[4] = 0;" (assignment_expression "puVar9[4] = 0" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[8] = 0;" (assignment_expression "puVar9[8] = 0" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0007e838;" goto statement_identifier ;) })) (expression_statement "piVar1[9] = piVar1[10];" (assignment_expression "piVar1[9] = piVar1[10]" (subscript_expression "piVar1[9]" identifier [ number_literal ]) = (subscript_expression "piVar1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar1[3];" (assignment_expression "iVar7 = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar9[iVar10 + 1] = 0;" (assignment_expression "puVar9[iVar10 + 1] = 0" (subscript_expression "puVar9[iVar10 + 1]" identifier [ (binary_expression "iVar10 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar10 + 5] = 0;" (assignment_expression "puVar9[iVar10 + 5] = 0" (subscript_expression "puVar9[iVar10 + 5]" identifier [ (binary_expression "iVar10 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;) (labeled_statement "LAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;" statement_identifier : (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;)) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" if (parenthesized_expression "(puVar9[9] == 0)" ( (binary_expression "puVar9[9] == 0" (subscript_expression "puVar9[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" { (expression_statement "*param_1 = puVar15;" (assignment_expression "*param_1 = puVar15" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) })) }) (else_clause "else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" else (compound_statement "{\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" { (labeled_statement "LAB_0007e3f0:\n      iVar10 = puVar13[0xb];" statement_identifier : (expression_statement "iVar10 = puVar13[0xb];" (assignment_expression "iVar10 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;)) (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" identifier = number_literal) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (if_statement "if (iVar10 == 0) {\n        iVar3 = 2;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 2;\n      }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) })) (expression_statement "puVar5[3] = puVar5[2];" (assignment_expression "puVar5[3] = puVar5[2]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[6];" (assignment_expression "puVar5[7] = puVar5[6]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[10] = puVar5[9];" (assignment_expression "puVar5[10] = puVar5[9]" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = (subscript_expression "puVar5[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = puVar5[1];" (assignment_expression "puVar5[2] = puVar5[1]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[5];" (assignment_expression "puVar5[6] = puVar5[5]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 != 0) {\n        iVar12 = 2;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = 2;\n      }" { (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" identifier = number_literal) ;) })) (expression_statement "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);" (assignment_expression "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" * (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" ( (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = (undefined4 *)puVar13[iVar3 + 1];" (assignment_expression "puVar4 = (undefined4 *)puVar13[iVar3 + 1]" identifier = (cast_expression "(undefined4 *)puVar13[iVar3 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]))) ;) (expression_statement "puVar5[1] = puVar4;" (assignment_expression "puVar5[1] = puVar4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = puVar13[iVar3 + 5];" (assignment_expression "puVar5[5] = puVar13[iVar3 + 5]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar13[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ])) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar4 = puVar5;\n      }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];" (assignment_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9]" (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" * (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" ( (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (subscript_expression "puVar13[iVar12 + 9]" identifier [ (binary_expression "iVar12 + 9" identifier + number_literal) ])) ;) (expression_statement "puVar13[iVar3 + 1] = 0;" (assignment_expression "puVar13[iVar3 + 1] = 0" (subscript_expression "puVar13[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar13[iVar3 + 5] = 0;" (assignment_expression "puVar13[iVar3 + 5] = 0" (subscript_expression "puVar13[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar13[iVar12 + 9] = 0;" (assignment_expression "puVar13[iVar12 + 9] = 0" (subscript_expression "puVar13[iVar12 + 9]" identifier [ (binary_expression "iVar12 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);" (assignment_expression "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14)" identifier = (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" * (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" ( (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_0007d8c0(puVar13);" (assignment_expression "iVar3 = FUN_0007d8c0(puVar13)" identifier = (call_expression "FUN_0007d8c0(puVar13)" identifier (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;" (assignment_expression "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3" (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" * (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" ( (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_2 = (param_2 + iVar10) - iVar3;" (assignment_expression "param_2 = (param_2 + iVar10) - iVar3" identifier = (binary_expression "(param_2 + iVar10) - iVar3" (parenthesized_expression "(param_2 + iVar10)" ( (binary_expression "param_2 + iVar10" identifier + identifier) )) - identifier)) ;) }))) })) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" { (expression_statement "iVar3 = puVar13[0xb];" (assignment_expression "iVar3 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007e2bc:\n    puVar13[9] = iVar3;" statement_identifier : (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;)) (if_statement "if (iVar10 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;)) })) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;" statement_identifier : (expression_statement "puVar9[iVar16 + 9] = 0;" (assignment_expression "puVar9[iVar16 + 9] = 0" (subscript_expression "puVar9[iVar16 + 9]" identifier [ (binary_expression "iVar16 + 9" identifier + number_literal) ]) = number_literal) ;)) (do_statement "do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );" do (compound_statement "{\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  }" { (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" identifier = identifier) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return iVar17;\n    }" { (return_statement "return iVar17;" return identifier ;) })) (while_statement "while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" while (parenthesized_expression "(puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13)" ( (comma_expression "puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13" (assignment_expression "puVar9 = puVar5" identifier = identifier) , (binary_expression "(undefined4 *)puVar9[1] != puVar13" (cast_expression "(undefined4 *)puVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ])) != identifier)) )) (compound_statement "{\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" { (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (if_statement "if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[2] == puVar13)" ( (binary_expression "(undefined4 *)puVar9[2] == puVar13" (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        iVar16 = 1;\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }) (else_clause "else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" else (if_statement "if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[3] == puVar13)" ( (binary_expression "(undefined4 *)puVar9[3] == puVar13" (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        iVar16 = 2;\n      }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })))) (expression_statement "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;" (assignment_expression "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" identifier [ (binary_expression "iVar16 + 5" identifier + number_literal) ]) = (binary_expression "puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" identifier [ (binary_expression "iVar16 + 5" identifier + number_literal) ]) + number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" identifier = identifier) ;) (if_statement "if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }" if (parenthesized_expression "((undefined4 *)*puVar9 == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar9 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return iVar17;\n      }" { (return_statement "return iVar17;" return identifier ;) })) })) (expression_statement "puVar9[5] = puVar9[5] + -1;" (assignment_expression "puVar9[5] = puVar9[5] + -1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9[5] + -1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0007e2c8:\n  iVar16 = 2;" statement_identifier : (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;)) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;) })))
(translation_unit "void * delpos234_internal(tree234 *t,int index)\n\n{\n  node234 **ppnVar1;\n  undefined *puVar2;\n  node234 *pnVar3;\n  node234_conflict *pnVar4;\n  node234_conflict *pnVar5;\n  node234 **ppnVar6;\n  int *piVar7;\n  node234_conflict *pnVar8;\n  int iVar9;\n  node234 *pnVar10;\n  void *pvVar11;\n  void *pvVar12;\n  int iVar13;\n  int iVar14;\n  node234 *pnVar15;\n  int iVar16;\n  int iVar17;\n  node234 *pnVar18;\n  int iVar19;\n  int iVar20;\n  void *pvVar21;\n  \n  pvVar21 = (void *)0x0;\n  iVar20 = -1;\n  pnVar8 = t->root;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  pnVar8 = pnVar5->kids[1];\n  iVar9 = 0;\n  if (pnVar8->elems[1] == (void *)0x0) {\n    iVar16 = 1;\nLAB_0007e3d8:\n    iVar17 = iVar9 * 4;\n    pnVar15 = pnVar5->kids[iVar9];\n    iVar19 = iVar16 * 4;\n    if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    pvVar12 = ppnVar6[0xb];\n    iVar19 = 2;\n    ppnVar6 = ppnVar6 + 1;\n    if (pvVar12 == (void *)0x0) break;\nLAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;\n    if (iVar19 == 2) goto LAB_0007e2c8;\n  }\n  iVar20 = 1;\nLAB_0007e2cc:\n  pnVar5->elems[iVar20] = (void *)0x0;\n  do {\n    pnVar4 = pnVar5;\n    if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }\n    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }\n    pnVar5->counts[0] = pnVar5->counts[0] + -1;\n    pnVar8 = pnVar5->parent;\n  } while( true );\nLAB_0007e2c8:\n  iVar20 = 2;\n  goto LAB_0007e2cc;\n}\n\n" (function_definition "void * delpos234_internal(tree234 *t,int index)\n\n{\n  node234 **ppnVar1;\n  undefined *puVar2;\n  node234 *pnVar3;\n  node234_conflict *pnVar4;\n  node234_conflict *pnVar5;\n  node234 **ppnVar6;\n  int *piVar7;\n  node234_conflict *pnVar8;\n  int iVar9;\n  node234 *pnVar10;\n  void *pvVar11;\n  void *pvVar12;\n  int iVar13;\n  int iVar14;\n  node234 *pnVar15;\n  int iVar16;\n  int iVar17;\n  node234 *pnVar18;\n  int iVar19;\n  int iVar20;\n  void *pvVar21;\n  \n  pvVar21 = (void *)0x0;\n  iVar20 = -1;\n  pnVar8 = t->root;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  pnVar8 = pnVar5->kids[1];\n  iVar9 = 0;\n  if (pnVar8->elems[1] == (void *)0x0) {\n    iVar16 = 1;\nLAB_0007e3d8:\n    iVar17 = iVar9 * 4;\n    pnVar15 = pnVar5->kids[iVar9];\n    iVar19 = iVar16 * 4;\n    if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    pvVar12 = ppnVar6[0xb];\n    iVar19 = 2;\n    ppnVar6 = ppnVar6 + 1;\n    if (pvVar12 == (void *)0x0) break;\nLAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;\n    if (iVar19 == 2) goto LAB_0007e2c8;\n  }\n  iVar20 = 1;\nLAB_0007e2cc:\n  pnVar5->elems[iVar20] = (void *)0x0;\n  do {\n    pnVar4 = pnVar5;\n    if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }\n    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }\n    pnVar5->counts[0] = pnVar5->counts[0] + -1;\n    pnVar8 = pnVar5->parent;\n  } while( true );\nLAB_0007e2c8:\n  iVar20 = 2;\n  goto LAB_0007e2cc;\n}" primitive_type (pointer_declarator "* delpos234_internal(tree234 *t,int index)" * (function_declarator "delpos234_internal(tree234 *t,int index)" identifier (parameter_list "(tree234 *t,int index)" ( (parameter_declaration "tree234 *t" type_identifier (pointer_declarator "*t" * identifier)) , (parameter_declaration "int index" primitive_type identifier) )))) (compound_statement "{\n  node234 **ppnVar1;\n  undefined *puVar2;\n  node234 *pnVar3;\n  node234_conflict *pnVar4;\n  node234_conflict *pnVar5;\n  node234 **ppnVar6;\n  int *piVar7;\n  node234_conflict *pnVar8;\n  int iVar9;\n  node234 *pnVar10;\n  void *pvVar11;\n  void *pvVar12;\n  int iVar13;\n  int iVar14;\n  node234 *pnVar15;\n  int iVar16;\n  int iVar17;\n  node234 *pnVar18;\n  int iVar19;\n  int iVar20;\n  void *pvVar21;\n  \n  pvVar21 = (void *)0x0;\n  iVar20 = -1;\n  pnVar8 = t->root;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  pnVar8 = pnVar5->kids[1];\n  iVar9 = 0;\n  if (pnVar8->elems[1] == (void *)0x0) {\n    iVar16 = 1;\nLAB_0007e3d8:\n    iVar17 = iVar9 * 4;\n    pnVar15 = pnVar5->kids[iVar9];\n    iVar19 = iVar16 * 4;\n    if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    pvVar12 = ppnVar6[0xb];\n    iVar19 = 2;\n    ppnVar6 = ppnVar6 + 1;\n    if (pvVar12 == (void *)0x0) break;\nLAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;\n    if (iVar19 == 2) goto LAB_0007e2c8;\n  }\n  iVar20 = 1;\nLAB_0007e2cc:\n  pnVar5->elems[iVar20] = (void *)0x0;\n  do {\n    pnVar4 = pnVar5;\n    if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }\n    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }\n    pnVar5->counts[0] = pnVar5->counts[0] + -1;\n    pnVar8 = pnVar5->parent;\n  } while( true );\nLAB_0007e2c8:\n  iVar20 = 2;\n  goto LAB_0007e2cc;\n}" { (declaration "node234 **ppnVar1;" type_identifier (pointer_declarator "**ppnVar1" * (pointer_declarator "*ppnVar1" * identifier)) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "node234 *pnVar3;" type_identifier (pointer_declarator "*pnVar3" * identifier) ;) (declaration "node234_conflict *pnVar4;" type_identifier (pointer_declarator "*pnVar4" * identifier) ;) (declaration "node234_conflict *pnVar5;" type_identifier (pointer_declarator "*pnVar5" * identifier) ;) (declaration "node234 **ppnVar6;" type_identifier (pointer_declarator "**ppnVar6" * (pointer_declarator "*ppnVar6" * identifier)) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "node234_conflict *pnVar8;" type_identifier (pointer_declarator "*pnVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "node234 *pnVar10;" type_identifier (pointer_declarator "*pnVar10" * identifier) ;) (declaration "void *pvVar11;" primitive_type (pointer_declarator "*pvVar11" * identifier) ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "node234 *pnVar15;" type_identifier (pointer_declarator "*pnVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "node234 *pnVar18;" type_identifier (pointer_declarator "*pnVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "void *pvVar21;" primitive_type (pointer_declarator "*pvVar21" * identifier) ;) (expression_statement "pvVar21 = (void *)0x0;" (assignment_expression "pvVar21 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar20 = -1;" (assignment_expression "iVar20 = -1" identifier = number_literal) ;) (expression_statement "pnVar8 = t->root;" (assignment_expression "pnVar8 = t->root" identifier = (field_expression "t->root" identifier -> field_identifier)) ;) (labeled_statement "joined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }\n    iVar20 = 0;\n    pnVar8 = pnVar5->parent;\n    pnVar15 = pnVar5->kids[0];\njoined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }\n    ppnVar6 = pnVar5->kids + iVar20 + -1;\n    pnVar8 = ppnVar6[1];\n    iVar19 = iVar20 + 1;\n    pnVar4 = pnVar8;\n    if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }\n  }" { (while_statement "while( true ) {\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      index = iVar19 - (pnVar5->counts[0] + 1);\n      if (index < 0) break;\n      if (index < pnVar5->counts[1]) goto LAB_0007e3bc;\n      iVar19 = index - (pnVar5->counts[1] + 1);\n      if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }\n      if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar19 = index;\n        pnVar5 = pnVar8;\n        if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }\n        if (pnVar5->counts[0] <= iVar19) break;\n        pnVar15 = pnVar5->kids[0];\n        pnVar8 = pnVar15;\n        index = iVar19;\n        if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" { (expression_statement "iVar19 = index;" (assignment_expression "iVar19 = index" identifier = identifier) ;) (expression_statement "pnVar5 = pnVar8;" (assignment_expression "pnVar5 = pnVar8" identifier = identifier) ;) (if_statement "if (pnVar5 == (node234_conflict *)0x0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(pnVar5 == (node234_conflict *)0x0)" ( (binary_expression "pnVar5 == (node234_conflict *)0x0" identifier == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }\n          if (iVar20 == -1) {\n            return (void *)0x0;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (pvVar21 == (void *)0x0) {\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar21 = *(void **)(iVar20 * 4 + 0x24);\n          }" { (expression_statement "pvVar21 = *(void **)(iVar20 * 4 + 0x24);" (assignment_expression "pvVar21 = *(void **)(iVar20 * 4 + 0x24)" identifier = (pointer_expression "*(void **)(iVar20 * 4 + 0x24)" * (cast_expression "(void **)(iVar20 * 4 + 0x24)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 * 4 + 0x24)" ( (binary_expression "iVar20 * 4 + 0x24" (binary_expression "iVar20 * 4" identifier * number_literal) + number_literal) ))))) ;) })) (if_statement "if (iVar20 == -1) {\n            return (void *)0x0;\n          }" if (parenthesized_expression "(iVar20 == -1)" ( (binary_expression "iVar20 == -1" identifier == number_literal) )) (compound_statement "{\n            return (void *)0x0;\n          }" { (return_statement "return (void *)0x0;" return (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (if_statement "if (pnVar5->counts[0] <= iVar19) break;" if (parenthesized_expression "(pnVar5->counts[0] <= iVar19)" ( (binary_expression "pnVar5->counts[0] <= iVar19" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "pnVar15 = pnVar5->kids[0];" (assignment_expression "pnVar15 = pnVar5->kids[0]" identifier = (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8 = pnVar15;" (assignment_expression "pnVar8 = pnVar15" identifier = identifier) ;) (expression_statement "index = iVar19;" (assignment_expression "index = iVar19" identifier = identifier) ;) (if_statement "if (pnVar15->elems[1] == (void *)0x0) {\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }" if (parenthesized_expression "(pnVar15->elems[1] == (void *)0x0)" ( (binary_expression "pnVar15->elems[1] == (void *)0x0" (subscript_expression "pnVar15->elems[1]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar18 = pnVar5->kids[1];\n          iVar16 = 1;\n          if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }\n          iVar19 = 0;\n          goto LAB_0007e5d0;\n        }" { (expression_statement "pnVar18 = pnVar5->kids[1];" (assignment_expression "pnVar18 = pnVar5->kids[1]" identifier = (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (if_statement "if ((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)) {\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "((pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0))" ( (binary_expression "(pnVar18 == (node234 *)0x0) || (iVar13 = 1, pnVar18->elems[1] == (void *)0x0)" (parenthesized_expression "(pnVar18 == (node234 *)0x0)" ( (binary_expression "pnVar18 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar13 = 1, pnVar18->elems[1] == (void *)0x0)" ( (comma_expression "iVar13 = 1, pnVar18->elems[1] == (void *)0x0" (assignment_expression "iVar13 = 1" identifier = number_literal) , (binary_expression "pnVar18->elems[1] == (void *)0x0" (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n            iVar9 = 0;\n            iVar17 = 0;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e5d0;" goto statement_identifier ;) })) })) (expression_statement "index = iVar19 - (pnVar5->counts[0] + 1);" (assignment_expression "index = iVar19 - (pnVar5->counts[0] + 1)" identifier = (binary_expression "iVar19 - (pnVar5->counts[0] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[0] + 1)" ( (binary_expression "pnVar5->counts[0] + 1" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (index < 0) break;" if (parenthesized_expression "(index < 0)" ( (binary_expression "index < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (index < pnVar5->counts[1]) goto LAB_0007e3bc;" if (parenthesized_expression "(index < pnVar5->counts[1])" ( (binary_expression "index < pnVar5->counts[1]" identifier < (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) )) (goto_statement "goto LAB_0007e3bc;" goto statement_identifier ;)) (expression_statement "iVar19 = index - (pnVar5->counts[1] + 1);" (assignment_expression "iVar19 = index - (pnVar5->counts[1] + 1)" identifier = (binary_expression "index - (pnVar5->counts[1] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[1] + 1)" ( (binary_expression "pnVar5->counts[1] + 1" (subscript_expression "pnVar5->counts[1]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (iVar19 < 0) {\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }" if (parenthesized_expression "(iVar19 < 0)" ( (binary_expression "iVar19 < 0" identifier < number_literal) )) (compound_statement "{\n        if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }\nLAB_0007e130:\n        pnVar8 = pnVar5->parent;\n        pnVar15 = pnVar5->kids[0];\n        goto joined_r0x0007e264;\n      }" { (if_statement "if (pvVar21 == (void *)0x0) {\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }\n        else {\n          iVar20 = 1;\n        }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pvVar21 = pnVar5->elems[1];\n          iVar20 = 1;\n        }" { (expression_statement "pvVar21 = pnVar5->elems[1];" (assignment_expression "pvVar21 = pnVar5->elems[1]" identifier = (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar20 = 1;\n        }" else (compound_statement "{\n          iVar20 = 1;\n        }" { (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007e130:\n        pnVar8 = pnVar5->parent;" statement_identifier : (expression_statement "pnVar8 = pnVar5->parent;" (assignment_expression "pnVar8 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;)) (expression_statement "pnVar15 = pnVar5->kids[0];" (assignment_expression "pnVar15 = pnVar5->kids[0]" identifier = (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (goto_statement "goto joined_r0x0007e264;" goto statement_identifier ;) })) (if_statement "if (iVar19 < pnVar5->counts[2]) {\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" if (parenthesized_expression "(iVar19 < pnVar5->counts[2])" ( (binary_expression "iVar19 < pnVar5->counts[2]" identifier < (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ])) )) (compound_statement "{\n        pnVar8 = pnVar5->kids[2];\n        iVar9 = 1;\n        index = iVar19;\n        if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }\n      }" { (expression_statement "pnVar8 = pnVar5->kids[2];" (assignment_expression "pnVar8 = pnVar5->kids[2]" identifier = (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar9 = 1;" (assignment_expression "iVar9 = 1" identifier = number_literal) ;) (expression_statement "index = iVar19;" (assignment_expression "index = iVar19" identifier = identifier) ;) (if_statement "if (pnVar8->elems[1] == (void *)0x0) {\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }" if (parenthesized_expression "(pnVar8->elems[1] == (void *)0x0)" ( (binary_expression "pnVar8->elems[1] == (void *)0x0" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar16 = 2;\n          goto LAB_0007e3d8;\n        }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3d8;" goto statement_identifier ;) })) }) (else_clause "else {\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" else (compound_statement "{\n        index = iVar19 - (pnVar5->counts[2] + 1);\n        if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        pnVar18 = pnVar5->kids[3];\n        pnVar8 = pnVar18;\n        if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" { (expression_statement "index = iVar19 - (pnVar5->counts[2] + 1);" (assignment_expression "index = iVar19 - (pnVar5->counts[2] + 1)" identifier = (binary_expression "iVar19 - (pnVar5->counts[2] + 1)" identifier - (parenthesized_expression "(pnVar5->counts[2] + 1)" ( (binary_expression "pnVar5->counts[2] + 1" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal) )))) ;) (if_statement "if (index < 0) {\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(index < 0)" ( (binary_expression "index < 0" identifier < number_literal) )) (compound_statement "{\n          if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (pvVar21 == (void *)0x0) {\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }\n          else {\n            iVar20 = 2;\n          }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pvVar21 = pnVar5->elems[2];\n            iVar20 = 2;\n          }" { (expression_statement "pvVar21 = pnVar5->elems[2];" (assignment_expression "pvVar21 = pnVar5->elems[2]" identifier = (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            iVar20 = 2;\n          }" else (compound_statement "{\n            iVar20 = 2;\n          }" { (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (expression_statement "pnVar18 = pnVar5->kids[3];" (assignment_expression "pnVar18 = pnVar5->kids[3]" identifier = (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8 = pnVar18;" (assignment_expression "pnVar8 = pnVar18" identifier = identifier) ;) (if_statement "if (pnVar18->elems[1] == (void *)0x0) {\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }" if (parenthesized_expression "(pnVar18->elems[1] == (void *)0x0)" ( (binary_expression "pnVar18->elems[1] == (void *)0x0" (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar15 = pnVar5->kids[2];\n          if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }\n          iVar16 = 3;\n          iVar17 = 8;\n          goto LAB_0007e3f0;\n        }" { (expression_statement "pnVar15 = pnVar5->kids[2];" (assignment_expression "pnVar15 = pnVar5->kids[2]" identifier = (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pnVar15->elems[1] == (void *)0x0) {\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "(pnVar15->elems[1] == (void *)0x0)" ( (binary_expression "pnVar15->elems[1] == (void *)0x0" (subscript_expression "pnVar15->elems[1]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar9 = 2;\n            iVar16 = 3;\n            iVar17 = 8;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (expression_statement "iVar17 = 8;" (assignment_expression "iVar17 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3f0;" goto statement_identifier ;) })) }))) })) (if_statement "if (pvVar21 == (void *)0x0) {\n      pvVar21 = pnVar5->elems[0];\n    }" if (parenthesized_expression "(pvVar21 == (void *)0x0)" ( (binary_expression "pvVar21 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pvVar21 = pnVar5->elems[0];\n    }" { (expression_statement "pvVar21 = pnVar5->elems[0];" (assignment_expression "pvVar21 = pnVar5->elems[0]" identifier = (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) })) (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "pnVar8 = pnVar5->parent;" (assignment_expression "pnVar8 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) (expression_statement "pnVar15 = pnVar5->kids[0];" (assignment_expression "pnVar15 = pnVar5->kids[0]" identifier = (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;) (labeled_statement "joined_r0x0007e264:\n    if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }" statement_identifier : (if_statement "if (pnVar8 == (node234_conflict *)0x0) {\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "(pnVar8 == (node234_conflict *)0x0)" ( (binary_expression "pnVar8 == (node234_conflict *)0x0" identifier == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }\n    }" { (if_statement "if (pnVar5->elems[1] == (void *)0x0) {\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }\n      else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(pnVar5->elems[1] == (void *)0x0)" ( (binary_expression "pnVar5->elems[1] == (void *)0x0" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }\n      }" { (if_statement "if (pnVar15 == (node234 *)0x0) {\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }" if (parenthesized_expression "(pnVar15 == (node234 *)0x0)" ( (binary_expression "pnVar15 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_safefree_000b23d0)(pnVar5);\n          t->root = (node234_conflict *)0x0;\n          return pvVar21;\n        }" { (expression_statement "(*(code *)PTR_safefree_000b23d0)(pnVar5);" (call_expression "(*(code *)PTR_safefree_000b23d0)(pnVar5)" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pnVar5)" ( identifier ))) ;) (expression_statement "t->root = (node234_conflict *)0x0;" (assignment_expression "t->root = (node234_conflict *)0x0" (field_expression "t->root" identifier -> field_identifier) = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return pvVar21;" return identifier ;) })) }) (else_clause "else if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }" else (if_statement "if (pnVar15 == (node234 *)0x0) {\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(pnVar15 == (node234 *)0x0)" ( (binary_expression "pnVar15 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar8 = (node234_conflict *)0x0;\n        goto LAB_0007e284;\n      }" { (expression_statement "pnVar8 = (node234_conflict *)0x0;" (assignment_expression "pnVar8 = (node234_conflict *)0x0" identifier = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0007e284;" goto statement_identifier ;) })))) }) (else_clause "else if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }" else (if_statement "if ((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)) {\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "((pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0))" ( (binary_expression "(pnVar15 == (node234 *)0x0) && (pnVar5->elems[1] != (void *)0x0)" (parenthesized_expression "(pnVar15 == (node234 *)0x0)" ( (binary_expression "pnVar15 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pnVar5->elems[1] != (void *)0x0)" ( (binary_expression "pnVar5->elems[1] != (void *)0x0" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\nLAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;\n      pvVar12 = pnVar5->elems[iVar20 + 1];\n      iVar19 = iVar20 + 1;\n      if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;\n      ppnVar6 = pnVar5->kids + iVar20 + -1;\n      goto LAB_0007e2bc;\n    }" { (labeled_statement "LAB_0007e284:\n      if (iVar20 == 2) goto LAB_0007e2c8;" statement_identifier : (if_statement "if (iVar20 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar20 == 2)" ( (binary_expression "iVar20 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;))) (expression_statement "pvVar12 = pnVar5->elems[iVar20 + 1];" (assignment_expression "pvVar12 = pnVar5->elems[iVar20 + 1]" identifier = (subscript_expression "pnVar5->elems[iVar20 + 1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ (binary_expression "iVar20 + 1" identifier + number_literal) ])) ;) (expression_statement "iVar19 = iVar20 + 1;" (assignment_expression "iVar19 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (if_statement "if (pvVar12 == (void *)0x0) goto LAB_0007e2cc;" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;)) (expression_statement "ppnVar6 = pnVar5->kids + iVar20 + -1;" (assignment_expression "ppnVar6 = pnVar5->kids + iVar20 + -1" identifier = (binary_expression "pnVar5->kids + iVar20 + -1" (binary_expression "pnVar5->kids + iVar20" (field_expression "pnVar5->kids" identifier -> field_identifier) + identifier) + number_literal)) ;) (goto_statement "goto LAB_0007e2bc;" goto statement_identifier ;) }))))) (expression_statement "ppnVar6 = pnVar5->kids + iVar20 + -1;" (assignment_expression "ppnVar6 = pnVar5->kids + iVar20 + -1" identifier = (binary_expression "pnVar5->kids + iVar20 + -1" (binary_expression "pnVar5->kids + iVar20" (field_expression "pnVar5->kids" identifier -> field_identifier) + identifier) + number_literal)) ;) (expression_statement "pnVar8 = ppnVar6[1];" (assignment_expression "pnVar8 = ppnVar6[1]" identifier = (subscript_expression "ppnVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = iVar20 + 1;" (assignment_expression "iVar19 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "pnVar4 = pnVar8;" (assignment_expression "pnVar4 = pnVar8" identifier = identifier) ;) (if_statement "if (pnVar8->elems[1] == (void *)0x0) {\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }\n    else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }" if (parenthesized_expression "(pnVar8->elems[1] == (void *)0x0)" ( (binary_expression "pnVar8->elems[1] == (void *)0x0" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pnVar10 = ppnVar6[2];\n      pnVar15 = pnVar10->kids[0];\n      pnVar18 = pnVar10;\n      if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }\n    }" { (expression_statement "pnVar10 = ppnVar6[2];" (assignment_expression "pnVar10 = ppnVar6[2]" identifier = (subscript_expression "ppnVar6[2]" identifier [ number_literal ])) ;) (expression_statement "pnVar15 = pnVar10->kids[0];" (assignment_expression "pnVar15 = pnVar10->kids[0]" identifier = (subscript_expression "pnVar10->kids[0]" (field_expression "pnVar10->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18 = pnVar10;" (assignment_expression "pnVar18 = pnVar10" identifier = identifier) ;) (if_statement "if (pnVar10->elems[1] == (void *)0x0) {\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }\n      else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }" if (parenthesized_expression "(pnVar10->elems[1] == (void *)0x0)" ( (binary_expression "pnVar10->elems[1] == (void *)0x0" (subscript_expression "pnVar10->elems[1]" (field_expression "pnVar10->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pvVar12 = ppnVar6[9];\n        iVar9 = pnVar10->counts[0];\n        pnVar8->kids[2] = pnVar15;\n        pnVar8->elems[1] = pvVar12;\n        pnVar8->counts[2] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        pnVar15 = pnVar10->kids[1];\n        iVar9 = pnVar10->counts[1];\n        pnVar8->elems[2] = pnVar10->elems[0];\n        pnVar8->kids[3] = pnVar15;\n        pnVar8->counts[3] = iVar9;\n        if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        iVar9 = countnode234(pnVar8);\n        ppnVar6[5] = (node234 *)iVar9;\n        if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }\n        index = pnVar8->counts[0] + pnVar8->counts[1] + 1;\n      }" { (expression_statement "pvVar12 = ppnVar6[9];" (assignment_expression "pvVar12 = ppnVar6[9]" identifier = (subscript_expression "ppnVar6[9]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = pnVar10->counts[0];" (assignment_expression "iVar9 = pnVar10->counts[0]" identifier = (subscript_expression "pnVar10->counts[0]" (field_expression "pnVar10->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8->kids[2] = pnVar15;" (assignment_expression "pnVar8->kids[2] = pnVar15" (subscript_expression "pnVar8->kids[2]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->elems[1] = pvVar12;" (assignment_expression "pnVar8->elems[1] = pvVar12" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->counts[2] = iVar9;" (assignment_expression "pnVar8->counts[2] = iVar9" (subscript_expression "pnVar8->counts[2]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }" if (parenthesized_expression "(pnVar15 != (node234 *)0x0)" ( (binary_expression "pnVar15 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar15->parent = pnVar8;\n        }" { (expression_statement "pnVar15->parent = pnVar8;" (assignment_expression "pnVar15->parent = pnVar8" (field_expression "pnVar15->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pnVar15 = pnVar10->kids[1];" (assignment_expression "pnVar15 = pnVar10->kids[1]" identifier = (subscript_expression "pnVar10->kids[1]" (field_expression "pnVar10->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar9 = pnVar10->counts[1];" (assignment_expression "iVar9 = pnVar10->counts[1]" identifier = (subscript_expression "pnVar10->counts[1]" (field_expression "pnVar10->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8->elems[2] = pnVar10->elems[0];" (assignment_expression "pnVar8->elems[2] = pnVar10->elems[0]" (subscript_expression "pnVar8->elems[2]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar10->elems[0]" (field_expression "pnVar10->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8->kids[3] = pnVar15;" (assignment_expression "pnVar8->kids[3] = pnVar15" (subscript_expression "pnVar8->kids[3]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->counts[3] = iVar9;" (assignment_expression "pnVar8->counts[3] = iVar9" (subscript_expression "pnVar8->counts[3]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pnVar15 != (node234 *)0x0) {\n          pnVar15->parent = pnVar8;\n        }" if (parenthesized_expression "(pnVar15 != (node234 *)0x0)" ( (binary_expression "pnVar15 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar15->parent = pnVar8;\n        }" { (expression_statement "pnVar15->parent = pnVar8;" (assignment_expression "pnVar15->parent = pnVar8" (field_expression "pnVar15->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_safefree_000b23d0)();" (call_expression "(*(code *)PTR_safefree_000b23d0)()" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = countnode234(pnVar8);" (assignment_expression "iVar9 = countnode234(pnVar8)" identifier = (call_expression "countnode234(pnVar8)" identifier (argument_list "(pnVar8)" ( identifier )))) ;) (expression_statement "ppnVar6[5] = (node234 *)iVar9;" (assignment_expression "ppnVar6[5] = (node234 *)iVar9" (subscript_expression "ppnVar6[5]" identifier [ number_literal ]) = (cast_expression "(node234 *)iVar9" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (iVar20 == 2) {\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }\n        else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }" if (parenthesized_expression "(iVar20 == 2)" ( (binary_expression "iVar20 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0007e554:\n          iVar19 = 3;\n          iVar9 = 2;\nLAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;\n          pnVar5->kids[iVar19] = (node234 *)0x0;\n          pnVar5->counts[iVar19] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }" { (labeled_statement "LAB_0007e554:\n          iVar19 = 3;" statement_identifier : (expression_statement "iVar19 = 3;" (assignment_expression "iVar19 = 3" identifier = number_literal) ;)) (expression_statement "iVar9 = 2;" (assignment_expression "iVar9 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0007e55c:\n          pnVar5->elems[iVar9] = (void *)0x0;" statement_identifier : (expression_statement "pnVar5->elems[iVar9] = (void *)0x0;" (assignment_expression "pnVar5->elems[iVar9] = (void *)0x0" (subscript_expression "pnVar5->elems[iVar9]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ identifier ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pnVar5->kids[iVar19] = (node234 *)0x0;" (assignment_expression "pnVar5->kids[iVar19] = (node234 *)0x0" (subscript_expression "pnVar5->kids[iVar19]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ identifier ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->counts[iVar19] = 0;" (assignment_expression "pnVar5->counts[iVar19] = 0" (subscript_expression "pnVar5->counts[iVar19]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "pvVar12 = pnVar5->elems[0];" (assignment_expression "pvVar12 = pnVar5->elems[0]" identifier = (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) }) (else_clause "else {\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }" else (compound_statement "{\n          pvVar12 = ppnVar6[10];\n          iVar9 = iVar20;\n          if (pvVar12 == (void *)0x0) goto LAB_0007e55c;\n          do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);\n          pnVar5->elems[1] = (void *)0x0;\n          pnVar5->kids[2] = (node234 *)0x0;\n          pnVar5->counts[2] = 0;\n          pvVar12 = pnVar5->elems[0];\n        }" { (expression_statement "pvVar12 = ppnVar6[10];" (assignment_expression "pvVar12 = ppnVar6[10]" identifier = (subscript_expression "ppnVar6[10]" identifier [ number_literal ])) ;) (expression_statement "iVar9 = iVar20;" (assignment_expression "iVar9 = iVar20" identifier = identifier) ;) (if_statement "if (pvVar12 == (void *)0x0) goto LAB_0007e55c;" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007e55c;" goto statement_identifier ;)) (do_statement "do {\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          } while (pvVar12 != (void *)0x0);" do (compound_statement "{\n            ppnVar6[9] = (node234 *)pvVar12;\n            ppnVar6[2] = ppnVar6[3];\n            ppnVar6[6] = ppnVar6[7];\n            if (iVar19 == 2) goto LAB_0007e554;\n            pvVar12 = ppnVar6[0xb];\n            iVar19 = 2;\n            ppnVar6 = ppnVar6 + 1;\n          }" { (expression_statement "ppnVar6[9] = (node234 *)pvVar12;" (assignment_expression "ppnVar6[9] = (node234 *)pvVar12" (subscript_expression "ppnVar6[9]" identifier [ number_literal ]) = (cast_expression "(node234 *)pvVar12" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppnVar6[2] = ppnVar6[3];" (assignment_expression "ppnVar6[2] = ppnVar6[3]" (subscript_expression "ppnVar6[2]" identifier [ number_literal ]) = (subscript_expression "ppnVar6[3]" identifier [ number_literal ])) ;) (expression_statement "ppnVar6[6] = ppnVar6[7];" (assignment_expression "ppnVar6[6] = ppnVar6[7]" (subscript_expression "ppnVar6[6]" identifier [ number_literal ]) = (subscript_expression "ppnVar6[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar19 == 2) goto LAB_0007e554;" if (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e554;" goto statement_identifier ;)) (expression_statement "pvVar12 = ppnVar6[0xb];" (assignment_expression "pvVar12 = ppnVar6[0xb]" identifier = (subscript_expression "ppnVar6[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) (expression_statement "ppnVar6 = ppnVar6 + 1;" (assignment_expression "ppnVar6 = ppnVar6 + 1" identifier = (binary_expression "ppnVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pvVar12 != (void *)0x0)" ( (binary_expression "pvVar12 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pnVar5->elems[1] = (void *)0x0;" (assignment_expression "pnVar5->elems[1] = (void *)0x0" (subscript_expression "pnVar5->elems[1]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->kids[2] = (node234 *)0x0;" (assignment_expression "pnVar5->kids[2] = (node234 *)0x0" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->counts[2] = 0;" (assignment_expression "pnVar5->counts[2] = 0" (subscript_expression "pnVar5->counts[2]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "pvVar12 = pnVar5->elems[0];" (assignment_expression "pvVar12 = pnVar5->elems[0]" identifier = (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ])) ;) }))) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (if_statement "if (pvVar12 == (void *)0x0) {\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          t->root = pnVar8;\n          pnVar8->parent = (node234_conflict *)0x0;\n          (*(code *)puVar2)(pnVar5);\n        }" { (expression_statement "t->root = pnVar8;" (assignment_expression "t->root = pnVar8" (field_expression "t->root" identifier -> field_identifier) = identifier) ;) (expression_statement "pnVar8->parent = (node234_conflict *)0x0;" (assignment_expression "pnVar8->parent = (node234_conflict *)0x0" (field_expression "pnVar8->parent" identifier -> field_identifier) = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)puVar2)(pnVar5);" (call_expression "(*(code *)puVar2)(pnVar5)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pnVar5)" ( identifier ))) ;) })) (expression_statement "index = pnVar8->counts[0] + pnVar8->counts[1] + 1;" (assignment_expression "index = pnVar8->counts[0] + pnVar8->counts[1] + 1" identifier = (binary_expression "pnVar8->counts[0] + pnVar8->counts[1] + 1" (binary_expression "pnVar8->counts[0] + pnVar8->counts[1]" (subscript_expression "pnVar8->counts[0]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) + (subscript_expression "pnVar8->counts[1]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ])) + number_literal)) ;) }) (else_clause "else {\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }" else (compound_statement "{\n        while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }\n        ppnVar6[9] = (node234 *)pnVar18->elems[0];\n        pnVar8 = pnVar10;\n        index = 0;\n      }" { (while_statement "while (pnVar3 = pnVar15, pnVar3 != (node234 *)0x0) {\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }" while (parenthesized_expression "(pnVar3 = pnVar15, pnVar3 != (node234 *)0x0)" ( (comma_expression "pnVar3 = pnVar15, pnVar3 != (node234 *)0x0" (assignment_expression "pnVar3 = pnVar15" identifier = identifier) , (binary_expression "pnVar3 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          pnVar18 = pnVar3;\n          pnVar15 = pnVar3->kids[0];\n        }" { (expression_statement "pnVar18 = pnVar3;" (assignment_expression "pnVar18 = pnVar3" identifier = identifier) ;) (expression_statement "pnVar15 = pnVar3->kids[0];" (assignment_expression "pnVar15 = pnVar3->kids[0]" identifier = (subscript_expression "pnVar3->kids[0]" (field_expression "pnVar3->kids" identifier -> field_identifier) [ number_literal ])) ;) })) (expression_statement "ppnVar6[9] = (node234 *)pnVar18->elems[0];" (assignment_expression "ppnVar6[9] = (node234 *)pnVar18->elems[0]" (subscript_expression "ppnVar6[9]" identifier [ number_literal ]) = (cast_expression "(node234 *)pnVar18->elems[0]" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pnVar18->elems[0]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]))) ;) (expression_statement "pnVar8 = pnVar10;" (assignment_expression "pnVar8 = pnVar10" identifier = identifier) ;) (expression_statement "index = 0;" (assignment_expression "index = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }" else (compound_statement "{\n      while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }\nLAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];\n      if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }\n      ppnVar6[9] = (node234 *)pvVar12;\n      index = (int)ppnVar6[5] + -1;\n    }" { (while_statement "while (pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0) {\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }" while (parenthesized_expression "(pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0)" ( (comma_expression "pnVar15 = pnVar4->kids[0], pnVar15 != (node234 *)0x0" (assignment_expression "pnVar15 = pnVar4->kids[0]" identifier = (subscript_expression "pnVar4->kids[0]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ])) , (binary_expression "pnVar15 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }\n        ppnVar1 = pnVar4->kids;\n        pnVar4 = ppnVar1[1];\n        if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }\n      }" { (while_statement "while ((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))) {\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }" while (parenthesized_expression "((pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0)))" ( (parenthesized_expression "(pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0))" ( (comma_expression "pnVar18 = pnVar4->kids[3], pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0)" (assignment_expression "pnVar18 = pnVar4->kids[3]" identifier = (subscript_expression "pnVar4->kids[3]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ])) , (binary_expression "pnVar4->kids[3] != (node234 *)0x0 ||\n               (pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0)" (binary_expression "pnVar4->kids[3] != (node234 *)0x0" (subscript_expression "pnVar4->kids[3]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0)" ( (comma_expression "pnVar18 = pnVar4->kids[2], pnVar4->kids[2] != (node234 *)0x0" (assignment_expression "pnVar18 = pnVar4->kids[2]" identifier = (subscript_expression "pnVar4->kids[2]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ])) , (binary_expression "pnVar4->kids[2] != (node234 *)0x0" (subscript_expression "pnVar4->kids[2]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n          pnVar4 = pnVar18;\n          pnVar15 = pnVar4->kids[0];\n          if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;\n        }" { (expression_statement "pnVar4 = pnVar18;" (assignment_expression "pnVar4 = pnVar18" identifier = identifier) ;) (expression_statement "pnVar15 = pnVar4->kids[0];" (assignment_expression "pnVar15 = pnVar4->kids[0]" identifier = (subscript_expression "pnVar4->kids[0]" (field_expression "pnVar4->kids" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pnVar15 == (node234 *)0x0) goto LAB_0007e21c;" if (parenthesized_expression "(pnVar15 == (node234 *)0x0)" ( (binary_expression "pnVar15 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007e21c;" goto statement_identifier ;)) })) (expression_statement "ppnVar1 = pnVar4->kids;" (assignment_expression "ppnVar1 = pnVar4->kids" identifier = (field_expression "pnVar4->kids" identifier -> field_identifier)) ;) (expression_statement "pnVar4 = ppnVar1[1];" (assignment_expression "pnVar4 = ppnVar1[1]" identifier = (subscript_expression "ppnVar1[1]" identifier [ number_literal ])) ;) (if_statement "if (ppnVar1[1] == (node234 *)0x0) {\n          pnVar4 = pnVar15;\n        }" if (parenthesized_expression "(ppnVar1[1] == (node234 *)0x0)" ( (binary_expression "ppnVar1[1] == (node234 *)0x0" (subscript_expression "ppnVar1[1]" identifier [ number_literal ]) == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pnVar4 = pnVar15;\n        }" { (expression_statement "pnVar4 = pnVar15;" (assignment_expression "pnVar4 = pnVar15" identifier = identifier) ;) })) })) (labeled_statement "LAB_0007e21c:\n      pvVar12 = pnVar4->elems[2];" statement_identifier : (expression_statement "pvVar12 = pnVar4->elems[2];" (assignment_expression "pvVar12 = pnVar4->elems[2]" identifier = (subscript_expression "pnVar4->elems[2]" (field_expression "pnVar4->elems" identifier -> field_identifier) [ number_literal ])) ;)) (if_statement "if ((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)) {\n        pvVar12 = pnVar4->elems[0];\n      }" if (parenthesized_expression "((pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0))" ( (binary_expression "(pvVar12 == (void *)0x0) && (pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)" (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0)" ( (comma_expression "pvVar12 = pnVar4->elems[1], pvVar12 == (void *)0x0" (assignment_expression "pvVar12 = pnVar4->elems[1]" identifier = (subscript_expression "pnVar4->elems[1]" (field_expression "pnVar4->elems" identifier -> field_identifier) [ number_literal ])) , (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n        pvVar12 = pnVar4->elems[0];\n      }" { (expression_statement "pvVar12 = pnVar4->elems[0];" (assignment_expression "pvVar12 = pnVar4->elems[0]" identifier = (subscript_expression "pnVar4->elems[0]" (field_expression "pnVar4->elems" identifier -> field_identifier) [ number_literal ])) ;) })) (expression_statement "ppnVar6[9] = (node234 *)pvVar12;" (assignment_expression "ppnVar6[9] = (node234 *)pvVar12" (subscript_expression "ppnVar6[9]" identifier [ number_literal ]) = (cast_expression "(node234 *)pvVar12" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "index = (int)ppnVar6[5] + -1;" (assignment_expression "index = (int)ppnVar6[5] + -1" identifier = (binary_expression "(int)ppnVar6[5] + -1" (cast_expression "(int)ppnVar6[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppnVar6[5]" identifier [ number_literal ])) + number_literal)) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_0007e3bc:\n  pnVar8 = pnVar5->kids[1];" statement_identifier : (expression_statement "pnVar8 = pnVar5->kids[1];" (assignment_expression "pnVar8 = pnVar5->kids[1]" identifier = (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ])) ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (if_statement "if (pnVar8->elems[1] == (void *)0x0) {\n    iVar16 = 1;\nLAB_0007e3d8:\n    iVar17 = iVar9 * 4;\n    pnVar15 = pnVar5->kids[iVar9];\n    iVar19 = iVar16 * 4;\n    if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }\n  }" if (parenthesized_expression "(pnVar8->elems[1] == (void *)0x0)" ( (binary_expression "pnVar8->elems[1] == (void *)0x0" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar16 = 1;\nLAB_0007e3d8:\n    iVar17 = iVar9 * 4;\n    pnVar15 = pnVar5->kids[iVar9];\n    iVar19 = iVar16 * 4;\n    if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }\n  }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e3d8:\n    iVar17 = iVar9 * 4;" statement_identifier : (expression_statement "iVar17 = iVar9 * 4;" (assignment_expression "iVar17 = iVar9 * 4" identifier = (binary_expression "iVar9 * 4" identifier * number_literal)) ;)) (expression_statement "pnVar15 = pnVar5->kids[iVar9];" (assignment_expression "pnVar15 = pnVar5->kids[iVar9]" identifier = (subscript_expression "pnVar5->kids[iVar9]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "iVar19 = iVar16 * 4;" (assignment_expression "iVar19 = iVar16 * 4" identifier = (binary_expression "iVar16 * 4" identifier * number_literal)) ;) (if_statement "if (pnVar15->elems[1] == (void *)0x0) {\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }" if (parenthesized_expression "(pnVar15->elems[1] == (void *)0x0)" ( (binary_expression "pnVar15->elems[1] == (void *)0x0" (subscript_expression "pnVar15->elems[1]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      ppnVar6 = pnVar5->kids + iVar16 + -1;\n      pnVar18 = ppnVar6[2];\n      iVar13 = iVar16 + 1;\n      if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }\nLAB_0007e740:\n      iVar14 = pnVar18->counts[1];\n      pvVar12 = pnVar18->elems[0];\n      iVar13 = pnVar18->counts[0];\n      pnVar10 = pnVar18->kids[0];\n      pnVar18->kids[3] = pnVar18->kids[1];\n      pnVar18->counts[3] = iVar14;\n      pnVar18->kids[2] = pnVar10;\n      pnVar18->elems[2] = pvVar12;\n      pnVar18->counts[2] = iVar13;\n      iVar13 = pnVar15->counts[1];\n      pnVar10 = pnVar15->kids[1];\n      pnVar18->elems[1] = pnVar5->elems[iVar9];\n      pnVar18->counts[1] = iVar13;\n      pnVar18->kids[1] = pnVar10;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      pnVar10 = pnVar15->kids[0];\n      iVar13 = pnVar15->counts[0];\n      pnVar18->elems[0] = pnVar15->elems[0];\n      pnVar18->kids[0] = pnVar10;\n      pnVar18->counts[0] = iVar13;\n      if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }\n      iVar13 = countnode234(pnVar18);\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar5->counts[iVar16] = iVar13;\n      (*(code *)puVar2)(pnVar15);\n      piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);\n      iVar16 = piVar7[2];\n      while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }\n      pnVar5->kids[iVar9] = (node234 *)0x0;\n      pnVar5->counts[iVar9] = 0;\n      pnVar5->elems[iVar9] = (void *)0x0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      pnVar8 = pnVar18;\n      index = iVar19;\n      if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }\n    }" { (expression_statement "ppnVar6 = pnVar5->kids + iVar16 + -1;" (assignment_expression "ppnVar6 = pnVar5->kids + iVar16 + -1" identifier = (binary_expression "pnVar5->kids + iVar16 + -1" (binary_expression "pnVar5->kids + iVar16" (field_expression "pnVar5->kids" identifier -> field_identifier) + identifier) + number_literal)) ;) (expression_statement "pnVar18 = ppnVar6[2];" (assignment_expression "pnVar18 = ppnVar6[2]" identifier = (subscript_expression "ppnVar6[2]" identifier [ number_literal ])) ;) (expression_statement "iVar13 = iVar16 + 1;" (assignment_expression "iVar13 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (if_statement "if (pnVar18 == (node234 *)0x0) {\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }\n      else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }" if (parenthesized_expression "(pnVar18 == (node234 *)0x0)" ( (binary_expression "pnVar18 == (node234 *)0x0" identifier == (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar18 = ppnVar6[1];\n        iVar19 = index + pnVar5->counts[iVar9] + 1;\n      }" { (expression_statement "pnVar18 = ppnVar6[1];" (assignment_expression "pnVar18 = ppnVar6[1]" identifier = (subscript_expression "ppnVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = index + pnVar5->counts[iVar9] + 1;" (assignment_expression "iVar19 = index + pnVar5->counts[iVar9] + 1" identifier = (binary_expression "index + pnVar5->counts[iVar9] + 1" (binary_expression "index + pnVar5->counts[iVar9]" identifier + (subscript_expression "pnVar5->counts[iVar9]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ])) + number_literal)) ;) }) (else_clause "else {\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }" else (compound_statement "{\n        if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }\n        iVar9 = iVar16 + -1;\n        pnVar15 = *ppnVar6;\n        pnVar18 = ppnVar6[1];\n        iVar17 = iVar9 * 4;\n        iVar19 = index + (int)ppnVar6[4] + 1;\n      }" { (if_statement "if (pnVar18->elems[1] != (void *)0x0) {\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }" if (parenthesized_expression "(pnVar18->elems[1] != (void *)0x0)" ( (binary_expression "pnVar18->elems[1] != (void *)0x0" (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;\n          iVar19 = pnVar18->counts[0];\n          pnVar15 = pnVar18->kids[0];\n          pvVar12 = *(void **)(iVar9 + 0x24);\n          pnVar8->kids[2] = pnVar15;\n          pnVar8->counts[2] = iVar19;\n          pnVar8->elems[1] = pvVar12;\n          if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }\n          *(void **)(iVar9 + 0x24) = pnVar18->elems[0];\n          pvVar12 = pnVar18->elems[1];\n          pnVar18->kids[0] = pnVar18->kids[1];\n          pnVar18->counts[0] = pnVar18->counts[1];\n          if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }\n          pnVar18->kids[iVar16] = (node234 *)0x0;\n          pnVar18->counts[iVar16] = 0;\n          pnVar18->elems[iVar19] = (void *)0x0;\n          iVar19 = countnode234(pnVar8);\n          *(int *)(iVar9 + 0x14) = iVar19;\n          iVar19 = countnode234(pnVar18);\n          pnVar5->counts[iVar13] = iVar19;\n          goto joined_r0x0007e0e8;\n        }" { (labeled_statement "LAB_0007e5d0:\n          iVar9 = (int)pnVar5->kids + iVar19 + -4;" statement_identifier : (expression_statement "iVar9 = (int)pnVar5->kids + iVar19 + -4;" (assignment_expression "iVar9 = (int)pnVar5->kids + iVar19 + -4" identifier = (binary_expression "(int)pnVar5->kids + iVar19 + -4" (binary_expression "(int)pnVar5->kids + iVar19" (cast_expression "(int)pnVar5->kids" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->kids" identifier -> field_identifier)) + identifier) + number_literal)) ;)) (expression_statement "iVar19 = pnVar18->counts[0];" (assignment_expression "iVar19 = pnVar18->counts[0]" identifier = (subscript_expression "pnVar18->counts[0]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar15 = pnVar18->kids[0];" (assignment_expression "pnVar15 = pnVar18->kids[0]" identifier = (subscript_expression "pnVar18->kids[0]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pvVar12 = *(void **)(iVar9 + 0x24);" (assignment_expression "pvVar12 = *(void **)(iVar9 + 0x24)" identifier = (pointer_expression "*(void **)(iVar9 + 0x24)" * (cast_expression "(void **)(iVar9 + 0x24)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pnVar8->kids[2] = pnVar15;" (assignment_expression "pnVar8->kids[2] = pnVar15" (subscript_expression "pnVar8->kids[2]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->counts[2] = iVar19;" (assignment_expression "pnVar8->counts[2] = iVar19" (subscript_expression "pnVar8->counts[2]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->elems[1] = pvVar12;" (assignment_expression "pnVar8->elems[1] = pvVar12" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pnVar15 != (node234 *)0x0) {\n            pnVar15->parent = pnVar8;\n          }" if (parenthesized_expression "(pnVar15 != (node234 *)0x0)" ( (binary_expression "pnVar15 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pnVar15->parent = pnVar8;\n          }" { (expression_statement "pnVar15->parent = pnVar8;" (assignment_expression "pnVar15->parent = pnVar8" (field_expression "pnVar15->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(void **)(iVar9 + 0x24) = pnVar18->elems[0];" (assignment_expression "*(void **)(iVar9 + 0x24) = pnVar18->elems[0]" (pointer_expression "*(void **)(iVar9 + 0x24)" * (cast_expression "(void **)(iVar9 + 0x24)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar9 + 0x24)" ( (binary_expression "iVar9 + 0x24" identifier + number_literal) )))) = (subscript_expression "pnVar18->elems[0]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pvVar12 = pnVar18->elems[1];" (assignment_expression "pvVar12 = pnVar18->elems[1]" identifier = (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->kids[0] = pnVar18->kids[1];" (assignment_expression "pnVar18->kids[0] = pnVar18->kids[1]" (subscript_expression "pnVar18->kids[0]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar18->kids[1]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->counts[0] = pnVar18->counts[1];" (assignment_expression "pnVar18->counts[0] = pnVar18->counts[1]" (subscript_expression "pnVar18->counts[0]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar18->counts[1]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;) (if_statement "if (pvVar12 == (void *)0x0) {\n            iVar16 = 1;\n            iVar19 = 0;\n          }\n          else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar16 = 1;\n            iVar19 = 0;\n          }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }" else (compound_statement "{\n            iVar19 = pnVar18->counts[2];\n            pvVar11 = pnVar18->elems[2];\n            pnVar18->kids[1] = pnVar18->kids[2];\n            pnVar18->counts[1] = iVar19;\n            pnVar18->elems[0] = pvVar12;\n            if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }\n          }" { (expression_statement "iVar19 = pnVar18->counts[2];" (assignment_expression "iVar19 = pnVar18->counts[2]" identifier = (subscript_expression "pnVar18->counts[2]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pvVar11 = pnVar18->elems[2];" (assignment_expression "pvVar11 = pnVar18->elems[2]" identifier = (subscript_expression "pnVar18->elems[2]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->kids[1] = pnVar18->kids[2];" (assignment_expression "pnVar18->kids[1] = pnVar18->kids[2]" (subscript_expression "pnVar18->kids[1]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar18->kids[2]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->counts[1] = iVar19;" (assignment_expression "pnVar18->counts[1] = iVar19" (subscript_expression "pnVar18->counts[1]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->elems[0] = pvVar12;" (assignment_expression "pnVar18->elems[0] = pvVar12" (subscript_expression "pnVar18->elems[0]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pvVar11 == (void *)0x0) {\n              iVar16 = 2;\n              iVar19 = 1;\n            }\n            else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }" if (parenthesized_expression "(pvVar11 == (void *)0x0)" ( (binary_expression "pvVar11 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar16 = 2;\n              iVar19 = 1;\n            }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }" else (compound_statement "{\n              pnVar15 = pnVar18->kids[3];\n              iVar16 = 3;\n              iVar17 = pnVar18->counts[3];\n              iVar19 = 2;\n              pnVar18->elems[1] = pvVar11;\n              pnVar18->kids[2] = pnVar15;\n              pnVar18->counts[2] = iVar17;\n            }" { (expression_statement "pnVar15 = pnVar18->kids[3];" (assignment_expression "pnVar15 = pnVar18->kids[3]" identifier = (subscript_expression "pnVar18->kids[3]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (expression_statement "iVar17 = pnVar18->counts[3];" (assignment_expression "iVar17 = pnVar18->counts[3]" identifier = (subscript_expression "pnVar18->counts[3]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) (expression_statement "pnVar18->elems[1] = pvVar11;" (assignment_expression "pnVar18->elems[1] = pvVar11" (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->kids[2] = pnVar15;" (assignment_expression "pnVar18->kids[2] = pnVar15" (subscript_expression "pnVar18->kids[2]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->counts[2] = iVar17;" (assignment_expression "pnVar18->counts[2] = iVar17" (subscript_expression "pnVar18->counts[2]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) }))) }))) (expression_statement "pnVar18->kids[iVar16] = (node234 *)0x0;" (assignment_expression "pnVar18->kids[iVar16] = (node234 *)0x0" (subscript_expression "pnVar18->kids[iVar16]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ identifier ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar18->counts[iVar16] = 0;" (assignment_expression "pnVar18->counts[iVar16] = 0" (subscript_expression "pnVar18->counts[iVar16]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "pnVar18->elems[iVar19] = (void *)0x0;" (assignment_expression "pnVar18->elems[iVar19] = (void *)0x0" (subscript_expression "pnVar18->elems[iVar19]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ identifier ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = countnode234(pnVar8);" (assignment_expression "iVar19 = countnode234(pnVar8)" identifier = (call_expression "countnode234(pnVar8)" identifier (argument_list "(pnVar8)" ( identifier )))) ;) (expression_statement "*(int *)(iVar9 + 0x14) = iVar19;" (assignment_expression "*(int *)(iVar9 + 0x14) = iVar19" (pointer_expression "*(int *)(iVar9 + 0x14)" * (cast_expression "(int *)(iVar9 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x14)" ( (binary_expression "iVar9 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar19 = countnode234(pnVar18);" (assignment_expression "iVar19 = countnode234(pnVar18)" identifier = (call_expression "countnode234(pnVar18)" identifier (argument_list "(pnVar18)" ( identifier )))) ;) (expression_statement "pnVar5->counts[iVar13] = iVar19;" (assignment_expression "pnVar5->counts[iVar13] = iVar19" (subscript_expression "pnVar5->counts[iVar13]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = identifier) ;) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) })) (expression_statement "iVar9 = iVar16 + -1;" (assignment_expression "iVar9 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "pnVar15 = *ppnVar6;" (assignment_expression "pnVar15 = *ppnVar6" identifier = (pointer_expression "*ppnVar6" * identifier)) ;) (expression_statement "pnVar18 = ppnVar6[1];" (assignment_expression "pnVar18 = ppnVar6[1]" identifier = (subscript_expression "ppnVar6[1]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = iVar9 * 4;" (assignment_expression "iVar17 = iVar9 * 4" identifier = (binary_expression "iVar9 * 4" identifier * number_literal)) ;) (expression_statement "iVar19 = index + (int)ppnVar6[4] + 1;" (assignment_expression "iVar19 = index + (int)ppnVar6[4] + 1" identifier = (binary_expression "index + (int)ppnVar6[4] + 1" (binary_expression "index + (int)ppnVar6[4]" identifier + (cast_expression "(int)ppnVar6[4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "ppnVar6[4]" identifier [ number_literal ]))) + number_literal)) ;) }))) (labeled_statement "LAB_0007e740:\n      iVar14 = pnVar18->counts[1];" statement_identifier : (expression_statement "iVar14 = pnVar18->counts[1];" (assignment_expression "iVar14 = pnVar18->counts[1]" identifier = (subscript_expression "pnVar18->counts[1]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;)) (expression_statement "pvVar12 = pnVar18->elems[0];" (assignment_expression "pvVar12 = pnVar18->elems[0]" identifier = (subscript_expression "pnVar18->elems[0]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13 = pnVar18->counts[0];" (assignment_expression "iVar13 = pnVar18->counts[0]" identifier = (subscript_expression "pnVar18->counts[0]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar10 = pnVar18->kids[0];" (assignment_expression "pnVar10 = pnVar18->kids[0]" identifier = (subscript_expression "pnVar18->kids[0]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->kids[3] = pnVar18->kids[1];" (assignment_expression "pnVar18->kids[3] = pnVar18->kids[1]" (subscript_expression "pnVar18->kids[3]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar18->kids[1]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->counts[3] = iVar14;" (assignment_expression "pnVar18->counts[3] = iVar14" (subscript_expression "pnVar18->counts[3]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->kids[2] = pnVar10;" (assignment_expression "pnVar18->kids[2] = pnVar10" (subscript_expression "pnVar18->kids[2]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->elems[2] = pvVar12;" (assignment_expression "pnVar18->elems[2] = pvVar12" (subscript_expression "pnVar18->elems[2]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->counts[2] = iVar13;" (assignment_expression "pnVar18->counts[2] = iVar13" (subscript_expression "pnVar18->counts[2]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "iVar13 = pnVar15->counts[1];" (assignment_expression "iVar13 = pnVar15->counts[1]" identifier = (subscript_expression "pnVar15->counts[1]" (field_expression "pnVar15->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar10 = pnVar15->kids[1];" (assignment_expression "pnVar10 = pnVar15->kids[1]" identifier = (subscript_expression "pnVar15->kids[1]" (field_expression "pnVar15->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->elems[1] = pnVar5->elems[iVar9];" (assignment_expression "pnVar18->elems[1] = pnVar5->elems[iVar9]" (subscript_expression "pnVar18->elems[1]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar5->elems[iVar9]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "pnVar18->counts[1] = iVar13;" (assignment_expression "pnVar18->counts[1] = iVar13" (subscript_expression "pnVar18->counts[1]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->kids[1] = pnVar10;" (assignment_expression "pnVar18->kids[1] = pnVar10" (subscript_expression "pnVar18->kids[1]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }" if (parenthesized_expression "(pnVar10 != (node234 *)0x0)" ( (binary_expression "pnVar10 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar10->parent = pnVar18;\n      }" { (expression_statement "pnVar10->parent = pnVar18;" (assignment_expression "pnVar10->parent = pnVar18" (field_expression "pnVar10->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "pnVar10 = pnVar15->kids[0];" (assignment_expression "pnVar10 = pnVar15->kids[0]" identifier = (subscript_expression "pnVar15->kids[0]" (field_expression "pnVar15->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13 = pnVar15->counts[0];" (assignment_expression "iVar13 = pnVar15->counts[0]" identifier = (subscript_expression "pnVar15->counts[0]" (field_expression "pnVar15->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->elems[0] = pnVar15->elems[0];" (assignment_expression "pnVar18->elems[0] = pnVar15->elems[0]" (subscript_expression "pnVar18->elems[0]" (field_expression "pnVar18->elems" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar15->elems[0]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar18->kids[0] = pnVar10;" (assignment_expression "pnVar18->kids[0] = pnVar10" (subscript_expression "pnVar18->kids[0]" (field_expression "pnVar18->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar18->counts[0] = iVar13;" (assignment_expression "pnVar18->counts[0] = iVar13" (subscript_expression "pnVar18->counts[0]" (field_expression "pnVar18->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pnVar10 != (node234 *)0x0) {\n        pnVar10->parent = pnVar18;\n      }" if (parenthesized_expression "(pnVar10 != (node234 *)0x0)" ( (binary_expression "pnVar10 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar10->parent = pnVar18;\n      }" { (expression_statement "pnVar10->parent = pnVar18;" (assignment_expression "pnVar10->parent = pnVar18" (field_expression "pnVar10->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "iVar13 = countnode234(pnVar18);" (assignment_expression "iVar13 = countnode234(pnVar18)" identifier = (call_expression "countnode234(pnVar18)" identifier (argument_list "(pnVar18)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (expression_statement "pnVar5->counts[iVar16] = iVar13;" (assignment_expression "pnVar5->counts[iVar16] = iVar13" (subscript_expression "pnVar5->counts[iVar16]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(pnVar15);" (call_expression "(*(code *)puVar2)(pnVar15)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pnVar15)" ( identifier ))) ;) (expression_statement "piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4);" (assignment_expression "piVar7 = (int *)((int)pnVar5->kids + iVar17 + -4)" identifier = (cast_expression "(int *)((int)pnVar5->kids + iVar17 + -4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pnVar5->kids + iVar17 + -4)" ( (binary_expression "(int)pnVar5->kids + iVar17 + -4" (binary_expression "(int)pnVar5->kids + iVar17" (cast_expression "(int)pnVar5->kids" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->kids" identifier -> field_identifier)) + identifier) + number_literal) )))) ;) (expression_statement "iVar16 = piVar7[2];" (assignment_expression "iVar16 = piVar7[2]" identifier = (subscript_expression "piVar7[2]" identifier [ number_literal ])) ;) (while_statement "while (iVar16 != 0) {\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }" while (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar9 = iVar9 + 1;\n        piVar7[1] = iVar16;\n        piVar7[5] = piVar7[6];\n        if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }\n        piVar7[9] = piVar7[10];\n        iVar16 = piVar7[3];\n        piVar7 = piVar7 + 1;\n      }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar7[1] = iVar16;" (assignment_expression "piVar7[1] = iVar16" (subscript_expression "piVar7[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar7[5] = piVar7[6];" (assignment_expression "piVar7[5] = piVar7[6]" (subscript_expression "piVar7[5]" identifier [ number_literal ]) = (subscript_expression "piVar7[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar9 == 3) {\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }" if (parenthesized_expression "(iVar9 == 3)" ( (binary_expression "iVar9 == 3" identifier == number_literal) )) (compound_statement "{\n          pnVar5->elems[2] = (void *)0x0;\n          pnVar5->kids[3] = (node234 *)0x0;\n          pnVar5->counts[3] = 0;\n          goto LAB_0007e838;\n        }" { (expression_statement "pnVar5->elems[2] = (void *)0x0;" (assignment_expression "pnVar5->elems[2] = (void *)0x0" (subscript_expression "pnVar5->elems[2]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->kids[3] = (node234 *)0x0;" (assignment_expression "pnVar5->kids[3] = (node234 *)0x0" (subscript_expression "pnVar5->kids[3]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->counts[3] = 0;" (assignment_expression "pnVar5->counts[3] = 0" (subscript_expression "pnVar5->counts[3]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0007e838;" goto statement_identifier ;) })) (expression_statement "piVar7[9] = piVar7[10];" (assignment_expression "piVar7[9] = piVar7[10]" (subscript_expression "piVar7[9]" identifier [ number_literal ]) = (subscript_expression "piVar7[10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = piVar7[3];" (assignment_expression "iVar16 = piVar7[3]" identifier = (subscript_expression "piVar7[3]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) })) (expression_statement "pnVar5->kids[iVar9] = (node234 *)0x0;" (assignment_expression "pnVar5->kids[iVar9] = (node234 *)0x0" (subscript_expression "pnVar5->kids[iVar9]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ identifier ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar5->counts[iVar9] = 0;" (assignment_expression "pnVar5->counts[iVar9] = 0" (subscript_expression "pnVar5->counts[iVar9]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "pnVar5->elems[iVar9] = (void *)0x0;" (assignment_expression "pnVar5->elems[iVar9] = (void *)0x0" (subscript_expression "pnVar5->elems[iVar9]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ identifier ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;" statement_identifier : (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;)) (expression_statement "pnVar8 = pnVar18;" (assignment_expression "pnVar8 = pnVar18" identifier = identifier) ;) (expression_statement "index = iVar19;" (assignment_expression "index = iVar19" identifier = identifier) ;) (if_statement "if (pnVar5->elems[0] == (void *)0x0) {\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }" if (parenthesized_expression "(pnVar5->elems[0] == (void *)0x0)" ( (binary_expression "pnVar5->elems[0] == (void *)0x0" (subscript_expression "pnVar5->elems[0]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ number_literal ]) == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        t->root = pnVar18;\n        pnVar18->parent = (node234_conflict *)0x0;\n        (*(code *)puVar2)(pnVar5);\n      }" { (expression_statement "t->root = pnVar18;" (assignment_expression "t->root = pnVar18" (field_expression "t->root" identifier -> field_identifier) = identifier) ;) (expression_statement "pnVar18->parent = (node234_conflict *)0x0;" (assignment_expression "pnVar18->parent = (node234_conflict *)0x0" (field_expression "pnVar18->parent" identifier -> field_identifier) = (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(*(code *)puVar2)(pnVar5);" (call_expression "(*(code *)puVar2)(pnVar5)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pnVar5)" ( identifier ))) ;) })) }) (else_clause "else {\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }" else (compound_statement "{\nLAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];\n      iVar19 = 3;\n      pnVar18 = pnVar8->kids[0];\n      iVar9 = pnVar8->counts[0];\n      iVar13 = 1;\n      if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }\n      iVar14 = pnVar8->counts[1];\n      pvVar11 = pnVar8->elems[0];\n      pnVar8->kids[2] = pnVar8->kids[1];\n      pnVar8->counts[2] = iVar14;\n      pnVar8->elems[1] = pvVar11;\n      pnVar8->kids[1] = pnVar18;\n      pnVar8->counts[1] = iVar9;\n      if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }\n      pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);\n      pnVar18 = pnVar15->kids[iVar19];\n      pnVar8->kids[0] = pnVar18;\n      pnVar8->counts[0] = pnVar15->counts[iVar19];\n      if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }\n      *(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];\n      pnVar15->kids[iVar19] = (node234 *)0x0;\n      pnVar15->counts[iVar19] = 0;\n      pnVar15->elems[iVar13] = (void *)0x0;\n      iVar19 = countnode234(pnVar8);\n      pnVar5->counts[iVar16] = iVar19;\n      iVar9 = *(int *)((int)pnVar5->counts + iVar17);\n      iVar19 = countnode234(pnVar15);\n      *(int *)((int)pnVar5->counts + iVar17) = iVar19;\n      index = (index + iVar9) - iVar19;\n    }" { (labeled_statement "LAB_0007e3f0:\n      pvVar12 = pnVar15->elems[2];" statement_identifier : (expression_statement "pvVar12 = pnVar15->elems[2];" (assignment_expression "pvVar12 = pnVar15->elems[2]" identifier = (subscript_expression "pnVar15->elems[2]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ number_literal ])) ;)) (expression_statement "iVar19 = 3;" (assignment_expression "iVar19 = 3" identifier = number_literal) ;) (expression_statement "pnVar18 = pnVar8->kids[0];" (assignment_expression "pnVar18 = pnVar8->kids[0]" identifier = (subscript_expression "pnVar8->kids[0]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar9 = pnVar8->counts[0];" (assignment_expression "iVar9 = pnVar8->counts[0]" identifier = (subscript_expression "pnVar8->counts[0]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (if_statement "if (pvVar12 == (void *)0x0) {\n        iVar19 = 2;\n      }" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar19 = 2;\n      }" { (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) })) (expression_statement "iVar14 = pnVar8->counts[1];" (assignment_expression "iVar14 = pnVar8->counts[1]" identifier = (subscript_expression "pnVar8->counts[1]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pvVar11 = pnVar8->elems[0];" (assignment_expression "pvVar11 = pnVar8->elems[0]" identifier = (subscript_expression "pnVar8->elems[0]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8->kids[2] = pnVar8->kids[1];" (assignment_expression "pnVar8->kids[2] = pnVar8->kids[1]" (subscript_expression "pnVar8->kids[2]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar8->kids[1]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pnVar8->counts[2] = iVar14;" (assignment_expression "pnVar8->counts[2] = iVar14" (subscript_expression "pnVar8->counts[2]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->elems[1] = pvVar11;" (assignment_expression "pnVar8->elems[1] = pvVar11" (subscript_expression "pnVar8->elems[1]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->kids[1] = pnVar18;" (assignment_expression "pnVar8->kids[1] = pnVar18" (subscript_expression "pnVar8->kids[1]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->counts[1] = iVar9;" (assignment_expression "pnVar8->counts[1] = iVar9" (subscript_expression "pnVar8->counts[1]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (pvVar12 != (void *)0x0) {\n        iVar13 = 2;\n      }" if (parenthesized_expression "(pvVar12 != (void *)0x0)" ( (binary_expression "pvVar12 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar13 = 2;\n      }" { (expression_statement "iVar13 = 2;" (assignment_expression "iVar13 = 2" identifier = number_literal) ;) })) (expression_statement "pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17);" (assignment_expression "pnVar8->elems[0] = *(void **)((int)pnVar5->elems + iVar17)" (subscript_expression "pnVar8->elems[0]" (field_expression "pnVar8->elems" identifier -> field_identifier) [ number_literal ]) = (pointer_expression "*(void **)((int)pnVar5->elems + iVar17)" * (cast_expression "(void **)((int)pnVar5->elems + iVar17)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pnVar5->elems + iVar17)" ( (binary_expression "(int)pnVar5->elems + iVar17" (cast_expression "(int)pnVar5->elems" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->elems" identifier -> field_identifier)) + identifier) ))))) ;) (expression_statement "pnVar18 = pnVar15->kids[iVar19];" (assignment_expression "pnVar18 = pnVar15->kids[iVar19]" identifier = (subscript_expression "pnVar15->kids[iVar19]" (field_expression "pnVar15->kids" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "pnVar8->kids[0] = pnVar18;" (assignment_expression "pnVar8->kids[0] = pnVar18" (subscript_expression "pnVar8->kids[0]" (field_expression "pnVar8->kids" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "pnVar8->counts[0] = pnVar15->counts[iVar19];" (assignment_expression "pnVar8->counts[0] = pnVar15->counts[iVar19]" (subscript_expression "pnVar8->counts[0]" (field_expression "pnVar8->counts" identifier -> field_identifier) [ number_literal ]) = (subscript_expression "pnVar15->counts[iVar19]" (field_expression "pnVar15->counts" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (pnVar18 != (node234 *)0x0) {\n        pnVar18->parent = pnVar8;\n      }" if (parenthesized_expression "(pnVar18 != (node234 *)0x0)" ( (binary_expression "pnVar18 != (node234 *)0x0" identifier != (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pnVar18->parent = pnVar8;\n      }" { (expression_statement "pnVar18->parent = pnVar8;" (assignment_expression "pnVar18->parent = pnVar8" (field_expression "pnVar18->parent" identifier -> field_identifier) = identifier) ;) })) (expression_statement "*(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13];" (assignment_expression "*(void **)((int)pnVar5->elems + iVar17) = pnVar15->elems[iVar13]" (pointer_expression "*(void **)((int)pnVar5->elems + iVar17)" * (cast_expression "(void **)((int)pnVar5->elems + iVar17)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)pnVar5->elems + iVar17)" ( (binary_expression "(int)pnVar5->elems + iVar17" (cast_expression "(int)pnVar5->elems" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->elems" identifier -> field_identifier)) + identifier) )))) = (subscript_expression "pnVar15->elems[iVar13]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "pnVar15->kids[iVar19] = (node234 *)0x0;" (assignment_expression "pnVar15->kids[iVar19] = (node234 *)0x0" (subscript_expression "pnVar15->kids[iVar19]" (field_expression "pnVar15->kids" identifier -> field_identifier) [ identifier ]) = (cast_expression "(node234 *)0x0" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pnVar15->counts[iVar19] = 0;" (assignment_expression "pnVar15->counts[iVar19] = 0" (subscript_expression "pnVar15->counts[iVar19]" (field_expression "pnVar15->counts" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "pnVar15->elems[iVar13] = (void *)0x0;" (assignment_expression "pnVar15->elems[iVar13] = (void *)0x0" (subscript_expression "pnVar15->elems[iVar13]" (field_expression "pnVar15->elems" identifier -> field_identifier) [ identifier ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar19 = countnode234(pnVar8);" (assignment_expression "iVar19 = countnode234(pnVar8)" identifier = (call_expression "countnode234(pnVar8)" identifier (argument_list "(pnVar8)" ( identifier )))) ;) (expression_statement "pnVar5->counts[iVar16] = iVar19;" (assignment_expression "pnVar5->counts[iVar16] = iVar19" (subscript_expression "pnVar5->counts[iVar16]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "iVar9 = *(int *)((int)pnVar5->counts + iVar17);" (assignment_expression "iVar9 = *(int *)((int)pnVar5->counts + iVar17)" identifier = (pointer_expression "*(int *)((int)pnVar5->counts + iVar17)" * (cast_expression "(int *)((int)pnVar5->counts + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pnVar5->counts + iVar17)" ( (binary_expression "(int)pnVar5->counts + iVar17" (cast_expression "(int)pnVar5->counts" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->counts" identifier -> field_identifier)) + identifier) ))))) ;) (expression_statement "iVar19 = countnode234(pnVar15);" (assignment_expression "iVar19 = countnode234(pnVar15)" identifier = (call_expression "countnode234(pnVar15)" identifier (argument_list "(pnVar15)" ( identifier )))) ;) (expression_statement "*(int *)((int)pnVar5->counts + iVar17) = iVar19;" (assignment_expression "*(int *)((int)pnVar5->counts + iVar17) = iVar19" (pointer_expression "*(int *)((int)pnVar5->counts + iVar17)" * (cast_expression "(int *)((int)pnVar5->counts + iVar17)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pnVar5->counts + iVar17)" ( (binary_expression "(int)pnVar5->counts + iVar17" (cast_expression "(int)pnVar5->counts" ( (type_descriptor "int" primitive_type) ) (field_expression "pnVar5->counts" identifier -> field_identifier)) + identifier) )))) = identifier) ;) (expression_statement "index = (index + iVar9) - iVar19;" (assignment_expression "index = (index + iVar9) - iVar19" identifier = (binary_expression "(index + iVar9) - iVar19" (parenthesized_expression "(index + iVar9)" ( (binary_expression "index + iVar9" identifier + identifier) )) - identifier)) ;) }))) })) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) (while_statement "while( true ) {\n    pvVar12 = ppnVar6[0xb];\n    iVar19 = 2;\n    ppnVar6 = ppnVar6 + 1;\n    if (pvVar12 == (void *)0x0) break;\nLAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;\n    if (iVar19 == 2) goto LAB_0007e2c8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pvVar12 = ppnVar6[0xb];\n    iVar19 = 2;\n    ppnVar6 = ppnVar6 + 1;\n    if (pvVar12 == (void *)0x0) break;\nLAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;\n    if (iVar19 == 2) goto LAB_0007e2c8;\n  }" { (expression_statement "pvVar12 = ppnVar6[0xb];" (assignment_expression "pvVar12 = ppnVar6[0xb]" identifier = (subscript_expression "ppnVar6[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar19 = 2;" (assignment_expression "iVar19 = 2" identifier = number_literal) ;) (expression_statement "ppnVar6 = ppnVar6 + 1;" (assignment_expression "ppnVar6 = ppnVar6 + 1" identifier = (binary_expression "ppnVar6 + 1" identifier + number_literal)) ;) (if_statement "if (pvVar12 == (void *)0x0) break;" if (parenthesized_expression "(pvVar12 == (void *)0x0)" ( (binary_expression "pvVar12 == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007e2bc:\n    ppnVar6[9] = (node234 *)pvVar12;" statement_identifier : (expression_statement "ppnVar6[9] = (node234 *)pvVar12;" (assignment_expression "ppnVar6[9] = (node234 *)pvVar12" (subscript_expression "ppnVar6[9]" identifier [ number_literal ]) = (cast_expression "(node234 *)pvVar12" ( (type_descriptor "node234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (if_statement "if (iVar19 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar19 == 2)" ( (binary_expression "iVar19 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;)) })) (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e2cc:\n  pnVar5->elems[iVar20] = (void *)0x0;" statement_identifier : (expression_statement "pnVar5->elems[iVar20] = (void *)0x0;" (assignment_expression "pnVar5->elems[iVar20] = (void *)0x0" (subscript_expression "pnVar5->elems[iVar20]" (field_expression "pnVar5->elems" identifier -> field_identifier) [ identifier ]) = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (do_statement "do {\n    pnVar4 = pnVar5;\n    if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }\n    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }\n    pnVar5->counts[0] = pnVar5->counts[0] + -1;\n    pnVar8 = pnVar5->parent;\n  } while( true );" do (compound_statement "{\n    pnVar4 = pnVar5;\n    if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }\n    while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }\n    pnVar5->counts[0] = pnVar5->counts[0] + -1;\n    pnVar8 = pnVar5->parent;\n  }" { (expression_statement "pnVar4 = pnVar5;" (assignment_expression "pnVar4 = pnVar5" identifier = identifier) ;) (if_statement "if (pnVar8 == (node234_conflict *)0x0) {\n      return pvVar21;\n    }" if (parenthesized_expression "(pnVar8 == (node234_conflict *)0x0)" ( (binary_expression "pnVar8 == (node234_conflict *)0x0" identifier == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return pvVar21;\n    }" { (return_statement "return pvVar21;" return identifier ;) })) (while_statement "while (pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4) {\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }" while (parenthesized_expression "(pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4)" ( (comma_expression "pnVar5 = pnVar8, pnVar5->kids[0] != pnVar4" (assignment_expression "pnVar5 = pnVar8" identifier = identifier) , (binary_expression "pnVar5->kids[0] != pnVar4" (subscript_expression "pnVar5->kids[0]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) != identifier)) )) (compound_statement "{\n      iVar20 = 3;\n      if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }\n      pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;\n      pnVar8 = pnVar5->parent;\n      pnVar4 = pnVar5;\n      if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }\n    }" { (expression_statement "iVar20 = 3;" (assignment_expression "iVar20 = 3" identifier = number_literal) ;) (if_statement "if (pnVar5->kids[1] == pnVar4) {\n        iVar20 = 1;\n      }\n      else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }" if (parenthesized_expression "(pnVar5->kids[1] == pnVar4)" ( (binary_expression "pnVar5->kids[1] == pnVar4" (subscript_expression "pnVar5->kids[1]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n        iVar20 = 1;\n      }" { (expression_statement "iVar20 = 1;" (assignment_expression "iVar20 = 1" identifier = number_literal) ;) }) (else_clause "else if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }" else (if_statement "if (pnVar5->kids[2] == pnVar4) {\n        iVar20 = 2;\n      }" if (parenthesized_expression "(pnVar5->kids[2] == pnVar4)" ( (binary_expression "pnVar5->kids[2] == pnVar4" (subscript_expression "pnVar5->kids[2]" (field_expression "pnVar5->kids" identifier -> field_identifier) [ number_literal ]) == identifier) )) (compound_statement "{\n        iVar20 = 2;\n      }" { (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) })))) (expression_statement "pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1;" (assignment_expression "pnVar5->counts[iVar20] = pnVar5->counts[iVar20] + -1" (subscript_expression "pnVar5->counts[iVar20]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) = (binary_expression "pnVar5->counts[iVar20] + -1" (subscript_expression "pnVar5->counts[iVar20]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ identifier ]) + number_literal)) ;) (expression_statement "pnVar8 = pnVar5->parent;" (assignment_expression "pnVar8 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) (expression_statement "pnVar4 = pnVar5;" (assignment_expression "pnVar4 = pnVar5" identifier = identifier) ;) (if_statement "if (pnVar5->parent == (node234_conflict *)0x0) {\n        return pvVar21;\n      }" if (parenthesized_expression "(pnVar5->parent == (node234_conflict *)0x0)" ( (binary_expression "pnVar5->parent == (node234_conflict *)0x0" (field_expression "pnVar5->parent" identifier -> field_identifier) == (cast_expression "(node234_conflict *)0x0" ( (type_descriptor "node234_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return pvVar21;\n      }" { (return_statement "return pvVar21;" return identifier ;) })) })) (expression_statement "pnVar5->counts[0] = pnVar5->counts[0] + -1;" (assignment_expression "pnVar5->counts[0] = pnVar5->counts[0] + -1" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) = (binary_expression "pnVar5->counts[0] + -1" (subscript_expression "pnVar5->counts[0]" (field_expression "pnVar5->counts" identifier -> field_identifier) [ number_literal ]) + number_literal)) ;) (expression_statement "pnVar8 = pnVar5->parent;" (assignment_expression "pnVar8 = pnVar5->parent" identifier = (field_expression "pnVar5->parent" identifier -> field_identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0007e2c8:\n  iVar20 = 2;" statement_identifier : (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;)) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;) })))
(translation_unit "int FUN_0007e08c(undefined4 *param_1,int param_2)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}\n\n" (function_definition "int FUN_0007e08c(undefined4 *param_1,int param_2)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" primitive_type (function_declarator "FUN_0007e08c(undefined4 *param_1,int param_2)" identifier (parameter_list "(undefined4 *param_1,int param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (labeled_statement "joined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" do (compound_statement "{\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  }" { (while_statement "while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" { (while_statement "while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" { (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" identifier = identifier) ;) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" identifier = identifier) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" { (expression_statement "iVar17 = *(int *)(iVar16 * 4 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar16 * 4 + 0x24)" identifier = (pointer_expression "*(int *)(iVar16 * 4 + 0x24)" * (cast_expression "(int *)(iVar16 * 4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar16 * 4 + 0x24)" ( (binary_expression "iVar16 * 4 + 0x24" (binary_expression "iVar16 * 4" identifier * number_literal) + number_literal) ))))) ;) })) (if_statement "if (iVar16 == -1) {\n            return 0;\n          }" if (parenthesized_expression "(iVar16 == -1)" ( (binary_expression "iVar16 == -1" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (if_statement "if ((int)puVar9[5] <= iVar3) break;" if (parenthesized_expression "((int)puVar9[5] <= iVar3)" ( (binary_expression "(int)puVar9[5] <= iVar3" (cast_expression "(int)puVar9[5]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[5]" identifier [ number_literal ])) <= identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar13 = (undefined4 *)puVar9[1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[1]" identifier = (cast_expression "(undefined4 *)puVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" identifier = identifier) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" { (expression_statement "puVar15 = (undefined4 *)puVar9[2];" (assignment_expression "puVar15 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (if_statement "if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0))" ( (binary_expression "(puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(iVar12 = 1, puVar15[10] == 0)" ( (comma_expression "iVar12 = 1, puVar15[10] == 0" (assignment_expression "iVar12 = 1" identifier = number_literal) , (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal)) ))) )) (compound_statement "{\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_0007e5d0;" goto statement_identifier ;) })) })) (expression_statement "param_2 = iVar3 - (puVar9[5] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[5] + 1)" identifier = (binary_expression "iVar3 - (puVar9[5] + 1)" identifier - (parenthesized_expression "(puVar9[5] + 1)" ( (binary_expression "puVar9[5] + 1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (param_2 < 0) break;" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (break_statement "break;" break ;)) (if_statement "if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;" if (parenthesized_expression "(param_2 < (int)puVar9[6])" ( (binary_expression "param_2 < (int)puVar9[6]" identifier < (cast_expression "(int)puVar9[6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[6]" identifier [ number_literal ]))) )) (goto_statement "goto LAB_0007e3bc;" goto statement_identifier ;)) (expression_statement "iVar3 = param_2 - (puVar9[6] + 1);" (assignment_expression "iVar3 = param_2 - (puVar9[6] + 1)" identifier = (binary_expression "param_2 - (puVar9[6] + 1)" identifier - (parenthesized_expression "(puVar9[6] + 1)" ( (binary_expression "puVar9[6] + 1" (subscript_expression "puVar9[6]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" { (if_statement "if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }" { (expression_statement "iVar17 = puVar9[10];" (assignment_expression "iVar17 = puVar9[10]" identifier = (subscript_expression "puVar9[10]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          iVar16 = 1;\n        }" else (compound_statement "{\n          iVar16 = 1;\n        }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;" statement_identifier : (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;)) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (goto_statement "goto joined_r0x0007e264;" goto statement_identifier ;) })) (if_statement "if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" if (parenthesized_expression "(iVar3 < (int)puVar9[7])" ( (binary_expression "iVar3 < (int)puVar9[7]" identifier < (cast_expression "(int)puVar9[7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar9[7]" identifier [ number_literal ]))) )) (compound_statement "{\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }" { (expression_statement "puVar5 = (undefined4 *)puVar9[3];" (assignment_expression "puVar5 = (undefined4 *)puVar9[3]" identifier = (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3d8;" goto statement_identifier ;) })) }) (else_clause "else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" else (compound_statement "{\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" { (expression_statement "param_2 = iVar3 - (puVar9[7] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[7] + 1)" identifier = (binary_expression "iVar3 - (puVar9[7] + 1)" identifier - (parenthesized_expression "(puVar9[7] + 1)" ( (binary_expression "puVar9[7] + 1" (subscript_expression "puVar9[7]" identifier [ number_literal ]) + number_literal) )))) ;) (if_statement "if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" if (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) )) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" { (if_statement "if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }" { (expression_statement "iVar17 = puVar9[0xb];" (assignment_expression "iVar17 = puVar9[0xb]" identifier = (subscript_expression "puVar9[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            iVar16 = 2;\n          }" else (compound_statement "{\n            iVar16 = 2;\n          }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) }))) (goto_statement "goto LAB_0007e130;" goto statement_identifier ;) })) (expression_statement "puVar15 = (undefined4 *)puVar9[4];" (assignment_expression "puVar15 = (undefined4 *)puVar9[4]" identifier = (cast_expression "(undefined4 *)puVar9[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[4]" identifier [ number_literal ]))) ;) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (if_statement "if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" if (parenthesized_expression "(puVar15[10] == 0)" ( (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" { (expression_statement "puVar13 = (undefined4 *)puVar9[3];" (assignment_expression "puVar13 = (undefined4 *)puVar9[3]" identifier = (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ]))) ;) (if_statement "if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" { (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e740;" goto statement_identifier ;) })) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" identifier = number_literal) ;) (goto_statement "goto LAB_0007e3f0;" goto statement_identifier ;) })) }))) })) (if_statement "if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar17 = puVar9[9];\n    }" { (expression_statement "iVar17 = puVar9[9];" (assignment_expression "iVar17 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) })) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" identifier = (subscript_expression "puVar9[1]" identifier [ number_literal ])) ;) (labeled_statement "joined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" statement_identifier : (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }" { (if_statement "if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(puVar9[10] == 0)" ( (binary_expression "puVar9[10] == 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" { (expression_statement "(*(code *)PTR_safefree_000b23d0)(puVar9);" (call_expression "(*(code *)PTR_safefree_000b23d0)(puVar9)" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" * identifier) = number_literal) ;) (return_statement "return iVar17;" return identifier ;) })) }) (else_clause "else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" else (if_statement "if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" { (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0007e284;" goto statement_identifier ;) })))) }) (else_clause "else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" else (if_statement "if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" if (parenthesized_expression "((iVar3 == 0) && (puVar9[10] != 0))" ( (binary_expression "(iVar3 == 0) && (puVar9[10] != 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(puVar9[10] != 0)" ( (binary_expression "puVar9[10] != 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" { (labeled_statement "LAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;" statement_identifier : (if_statement "if (iVar16 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;))) (expression_statement "iVar3 = puVar9[iVar16 + 10];" (assignment_expression "iVar3 = puVar9[iVar16 + 10]" identifier = (subscript_expression "puVar9[iVar16 + 10]" identifier [ (binary_expression "iVar16 + 10" identifier + number_literal) ])) ;) (expression_statement "iVar10 = iVar16 + 1;" (assignment_expression "iVar10 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) goto LAB_0007e2cc;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;)) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" identifier = (binary_expression "puVar9 + iVar16" identifier + identifier)) ;) (goto_statement "goto LAB_0007e2bc;" goto statement_identifier ;) }))))) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" identifier = (binary_expression "puVar9 + iVar16" identifier + identifier)) ;) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = iVar16 + 1;" (assignment_expression "iVar3 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) (if_statement "if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }" { (expression_statement "puVar8 = (undefined4 *)puVar13[2];" (assignment_expression "puVar8 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar4 = (undefined4 *)puVar8[1];" (assignment_expression "puVar4 = (undefined4 *)puVar8[1]" identifier = (cast_expression "(undefined4 *)puVar8[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[1]" identifier [ number_literal ]))) ;) (expression_statement "puVar15 = puVar8;" (assignment_expression "puVar15 = puVar8" identifier = identifier) ;) (if_statement "if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" if (parenthesized_expression "(puVar8[10] == 0)" ( (binary_expression "puVar8[10] == 0" (subscript_expression "puVar8[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }" { (expression_statement "uVar11 = puVar13[9];" (assignment_expression "uVar11 = puVar13[9]" identifier = (subscript_expression "puVar13[9]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar8[5];" (assignment_expression "uVar6 = puVar8[5]" identifier = (subscript_expression "puVar8[5]" identifier [ number_literal ])) ;) (expression_statement "puVar5[3] = puVar4;" (assignment_expression "puVar5[3] = puVar4" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = uVar11;" (assignment_expression "puVar5[10] = uVar11" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = uVar6;" (assignment_expression "puVar5[7] = uVar6" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *puVar4 = puVar5;\n        }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "puVar4 = (undefined4 *)puVar8[2];" (assignment_expression "puVar4 = (undefined4 *)puVar8[2]" identifier = (cast_expression "(undefined4 *)puVar8[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar8[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = puVar8[6];" (assignment_expression "uVar6 = puVar8[6]" identifier = (subscript_expression "puVar8[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[0xb] = puVar8[9];" (assignment_expression "puVar5[0xb] = puVar8[9]" (subscript_expression "puVar5[0xb]" identifier [ number_literal ]) = (subscript_expression "puVar8[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5[4] = puVar4;" (assignment_expression "puVar5[4] = puVar4" (subscript_expression "puVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[8] = uVar6;" (assignment_expression "puVar5[8] = uVar6" (subscript_expression "puVar5[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *puVar4 = puVar5;\n        }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_safefree_000b23d0)();" (call_expression "(*(code *)PTR_safefree_000b23d0)()" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" ( (pointer_expression "*(code *)PTR_safefree_000b23d0" * (cast_expression "(code *)PTR_safefree_000b23d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "puVar13[5] = uVar6;" (assignment_expression "puVar13[5] = uVar6" (subscript_expression "puVar13[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" if (parenthesized_expression "(iVar16 == 2)" ( (binary_expression "iVar16 == 2" identifier == number_literal) )) (compound_statement "{\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }" { (labeled_statement "LAB_0007e554:\n          iVar3 = 3;" statement_identifier : (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" identifier = number_literal) ;)) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (labeled_statement "LAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;" statement_identifier : (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;)) (expression_statement "puVar9[iVar3 + 1] = 0;" (assignment_expression "puVar9[iVar3 + 1] = 0" (subscript_expression "puVar9[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar3 + 5] = 0;" (assignment_expression "puVar9[iVar3 + 5] = 0" (subscript_expression "puVar9[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) }) (else_clause "else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" else (compound_statement "{\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" { (expression_statement "iVar7 = puVar13[10];" (assignment_expression "iVar7 = puVar13[10]" identifier = (subscript_expression "puVar13[10]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_0007e55c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007e55c;" goto statement_identifier ;)) (do_statement "do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);" do (compound_statement "{\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          }" { (expression_statement "puVar13[9] = iVar7;" (assignment_expression "puVar13[9] = iVar7" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar13[2] = puVar13[3];" (assignment_expression "puVar13[2] = puVar13[3]" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (subscript_expression "puVar13[3]" identifier [ number_literal ])) ;) (expression_statement "puVar13[6] = puVar13[7];" (assignment_expression "puVar13[6] = puVar13[7]" (subscript_expression "puVar13[6]" identifier [ number_literal ]) = (subscript_expression "puVar13[7]" identifier [ number_literal ])) ;) (if_statement "if (iVar3 == 2) goto LAB_0007e554;" if (parenthesized_expression "(iVar3 == 2)" ( (binary_expression "iVar3 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e554;" goto statement_identifier ;)) (expression_statement "iVar7 = puVar13[0xb];" (assignment_expression "iVar7 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "puVar9[10] = 0;" (assignment_expression "puVar9[10] = 0" (subscript_expression "puVar9[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[3] = 0;" (assignment_expression "puVar9[3] = 0" (subscript_expression "puVar9[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[7] = 0;" (assignment_expression "puVar9[7] = 0" (subscript_expression "puVar9[7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" identifier = (subscript_expression "puVar9[9]" identifier [ number_literal ])) ;) }))) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" { (expression_statement "*param_1 = puVar5;" (assignment_expression "*param_1 = puVar5" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) })) (expression_statement "param_2 = puVar5[5] + puVar5[6] + 1;" (assignment_expression "param_2 = puVar5[5] + puVar5[6] + 1" identifier = (binary_expression "puVar5[5] + puVar5[6] + 1" (binary_expression "puVar5[5] + puVar5[6]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) + (subscript_expression "puVar5[6]" identifier [ number_literal ])) + number_literal)) ;) }) (else_clause "else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" else (compound_statement "{\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" { (while_statement "while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" while (parenthesized_expression "(puVar5 = puVar4, puVar5 != (undefined4 *)0x0)" ( (comma_expression "puVar5 = puVar4, puVar5 != (undefined4 *)0x0" (assignment_expression "puVar5 = puVar4" identifier = identifier) , (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" { (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" identifier = identifier) ;) (expression_statement "puVar4 = (undefined4 *)puVar5[1];" (assignment_expression "puVar4 = (undefined4 *)puVar5[1]" identifier = (cast_expression "(undefined4 *)puVar5[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar5[1]" identifier [ number_literal ]))) ;) })) (expression_statement "puVar13[9] = puVar15[9];" (assignment_expression "puVar13[9] = puVar15[9]" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" identifier = identifier) ;) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" identifier = number_literal) ;) }))) }) (else_clause "else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" else (compound_statement "{\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" { (while_statement "while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" while (parenthesized_expression "(puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0)" ( (comma_expression "puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) , (binary_expression "puVar9 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" { (while_statement "while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" while (parenthesized_expression "((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)))" ( (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))" ( (comma_expression "puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (assignment_expression "puVar15 = (undefined4 *)puVar4[4]" identifier = (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ]))) , (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[4]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[4]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) || (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" ( (comma_expression "puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0" (assignment_expression "puVar15 = (undefined4 *)puVar4[3]" identifier = (cast_expression "(undefined4 *)puVar4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[3]" identifier [ number_literal ]))) , (binary_expression "(undefined4 *)puVar4[3] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[3]" identifier [ number_literal ])) != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )))) )) )) (compound_statement "{\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" { (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" identifier = identifier) ;) (expression_statement "puVar9 = (undefined4 *)puVar4[1];" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;" if (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" ( (binary_expression "puVar9 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007e21c;" goto statement_identifier ;)) })) (expression_statement "puVar15 = puVar4 + 2;" (assignment_expression "puVar15 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (expression_statement "puVar4 = (undefined4 *)*puVar15;" (assignment_expression "puVar4 = (undefined4 *)*puVar15" identifier = (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier))) ;) (if_statement "if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }" if (parenthesized_expression "((undefined4 *)*puVar15 == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar15 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar15" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar15" * identifier)) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          puVar4 = puVar9;\n        }" { (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" identifier = identifier) ;) })) })) (labeled_statement "LAB_0007e21c:\n      iVar3 = puVar4[0xb];" statement_identifier : (expression_statement "iVar3 = puVar4[0xb];" (assignment_expression "iVar3 = puVar4[0xb]" identifier = (subscript_expression "puVar4[0xb]" identifier [ number_literal ])) ;)) (if_statement "if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }" if (parenthesized_expression "((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0))" ( (binary_expression "(iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar3 = puVar4[10], iVar3 == 0)" ( (comma_expression "iVar3 = puVar4[10], iVar3 == 0" (assignment_expression "iVar3 = puVar4[10]" identifier = (subscript_expression "puVar4[10]" identifier [ number_literal ])) , (binary_expression "iVar3 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar3 = puVar4[9];\n      }" { (expression_statement "iVar3 = puVar4[9];" (assignment_expression "iVar3 = puVar4[9]" identifier = (subscript_expression "puVar4[9]" identifier [ number_literal ])) ;) })) (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_2 = puVar13[5] + -1;" (assignment_expression "param_2 = puVar13[5] + -1" identifier = (binary_expression "puVar13[5] + -1" (subscript_expression "puVar13[5]" identifier [ number_literal ]) + number_literal)) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) (labeled_statement "LAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];" statement_identifier : (expression_statement "puVar5 = (undefined4 *)puVar9[2];" (assignment_expression "puVar5 = (undefined4 *)puVar9[2]" identifier = (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ]))) ;)) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (if_statement "if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" if (parenthesized_expression "(puVar5[10] == 0)" ( (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e3d8:\n    iVar14 = iVar10 * 4;" statement_identifier : (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;)) (expression_statement "puVar13 = (undefined4 *)puVar9[iVar10 + 1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[iVar10 + 1]" identifier = (cast_expression "(undefined4 *)puVar9[iVar10 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[iVar10 + 1]" identifier [ (binary_expression "iVar10 + 1" identifier + number_literal) ]))) ;) (expression_statement "iVar3 = iVar7 * 4;" (assignment_expression "iVar3 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (if_statement "if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" if (parenthesized_expression "(puVar13[10] == 0)" ( (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }" { (expression_statement "puVar4 = puVar9 + iVar7;" (assignment_expression "puVar4 = puVar9 + iVar7" identifier = (binary_expression "puVar9 + iVar7" identifier + identifier)) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[2]" identifier = (cast_expression "(undefined4 *)puVar4[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[2]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = iVar7 + 1;" (assignment_expression "iVar12 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" if (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" ( (binary_expression "puVar15 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }" { (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar3 = param_2 + puVar9[iVar10 + 5] + 1;" (assignment_expression "iVar3 = param_2 + puVar9[iVar10 + 5] + 1" identifier = (binary_expression "param_2 + puVar9[iVar10 + 5] + 1" (binary_expression "param_2 + puVar9[iVar10 + 5]" identifier + (subscript_expression "puVar9[iVar10 + 5]" identifier [ (binary_expression "iVar10 + 5" identifier + number_literal) ])) + number_literal)) ;) }) (else_clause "else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" else (compound_statement "{\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" { (if_statement "if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" if (parenthesized_expression "(puVar15[10] != 0)" ( (binary_expression "puVar15[10] != 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" { (labeled_statement "LAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;" statement_identifier : (expression_statement "iVar3 = (int)puVar9 + iVar3;" (assignment_expression "iVar3 = (int)puVar9 + iVar3" identifier = (binary_expression "(int)puVar9 + iVar3" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;)) (expression_statement "uVar11 = puVar15[5];" (assignment_expression "uVar11 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "puVar13 = (undefined4 *)puVar15[1];" (assignment_expression "puVar13 = (undefined4 *)puVar15[1]" identifier = (cast_expression "(undefined4 *)puVar15[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar15[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(undefined4 *)(iVar3 + 0x24)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) ))))) ;) (expression_statement "puVar5[3] = puVar13;" (assignment_expression "puVar5[3] = puVar13" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[7] = uVar11;" (assignment_expression "puVar5[7] = uVar11" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[10] = uVar6;" (assignment_expression "puVar5[10] = uVar6" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }" if (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" ( (binary_expression "puVar13 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *puVar13 = puVar5;\n          }" { (expression_statement "*puVar13 = puVar5;" (assignment_expression "*puVar13 = puVar5" (pointer_expression "*puVar13" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)(iVar3 + 0x24) = puVar15[9];" (assignment_expression "*(undefined4 *)(iVar3 + 0x24) = puVar15[9]" (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" * (cast_expression "(undefined4 *)(iVar3 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x24)" ( (binary_expression "iVar3 + 0x24" identifier + number_literal) )))) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[1] = puVar15[2];" (assignment_expression "puVar15[1] = puVar15[2]" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "puVar15[5] = puVar15[6];" (assignment_expression "puVar15[5] = puVar15[6]" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = (subscript_expression "puVar15[6]" identifier [ number_literal ])) ;) (if_statement "if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" if (parenthesized_expression "(puVar15[10] == 0)" ( (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            iVar7 = 1;\n            iVar10 = 0;\n          }" { (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" else (compound_statement "{\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" { (expression_statement "puVar15[2] = puVar15[3];" (assignment_expression "puVar15[2] = puVar15[3]" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar15[6] = puVar15[7];" (assignment_expression "puVar15[6] = puVar15[7]" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = (subscript_expression "puVar15[7]" identifier [ number_literal ])) ;) (expression_statement "puVar15[9] = puVar15[10];" (assignment_expression "puVar15[9] = puVar15[10]" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (subscript_expression "puVar15[10]" identifier [ number_literal ])) ;) (if_statement "if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" if (parenthesized_expression "(puVar15[0xb] == 0)" ( (binary_expression "puVar15[0xb] == 0" (subscript_expression "puVar15[0xb]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              iVar7 = 2;\n              iVar10 = 1;\n            }" { (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" identifier = number_literal) ;) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" identifier = number_literal) ;) }) (else_clause "else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" else (compound_statement "{\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" { (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" identifier = number_literal) ;) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "puVar15[10] = puVar15[0xb];" (assignment_expression "puVar15[10] = puVar15[0xb]" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = (subscript_expression "puVar15[0xb]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar15[4];" (assignment_expression "puVar15[3] = puVar15[4]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar15[4]" identifier [ number_literal ])) ;) (expression_statement "puVar15[7] = puVar15[8];" (assignment_expression "puVar15[7] = puVar15[8]" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = (subscript_expression "puVar15[8]" identifier [ number_literal ])) ;) }))) }))) (expression_statement "puVar15[iVar7 + 1] = 0;" (assignment_expression "puVar15[iVar7 + 1] = 0" (subscript_expression "puVar15[iVar7 + 1]" identifier [ (binary_expression "iVar7 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar15[iVar7 + 5] = 0;" (assignment_expression "puVar15[iVar7 + 5] = 0" (subscript_expression "puVar15[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar15[iVar10 + 9] = 0;" (assignment_expression "puVar15[iVar10 + 9] = 0" (subscript_expression "puVar15[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" * (cast_expression "(undefined4 *)(iVar3 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x14)" ( (binary_expression "iVar3 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" identifier = (call_expression "FUN_0007d8c0(puVar15)" identifier (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "puVar9[iVar12 + 5] = uVar6;" (assignment_expression "puVar9[iVar12 + 5] = uVar6" (subscript_expression "puVar9[iVar12 + 5]" identifier [ (binary_expression "iVar12 + 5" identifier + number_literal) ]) = identifier) ;) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) })) (expression_statement "iVar10 = iVar7 + -1;" (assignment_expression "iVar10 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined4 *)*puVar4;" (assignment_expression "puVar13 = (undefined4 *)*puVar4" identifier = (cast_expression "(undefined4 *)*puVar4" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar4" * identifier))) ;) (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" identifier = (cast_expression "(undefined4 *)puVar4[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar4[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" identifier = (binary_expression "iVar10 * 4" identifier * number_literal)) ;) (expression_statement "iVar3 = param_2 + puVar4[4] + 1;" (assignment_expression "iVar3 = param_2 + puVar4[4] + 1" identifier = (binary_expression "param_2 + puVar4[4] + 1" (binary_expression "param_2 + puVar4[4]" identifier + (subscript_expression "puVar4[4]" identifier [ number_literal ])) + number_literal)) ;) }))) (labeled_statement "LAB_0007e740:\n      puVar15[4] = puVar15[2];" statement_identifier : (expression_statement "puVar15[4] = puVar15[2];" (assignment_expression "puVar15[4] = puVar15[2]" (subscript_expression "puVar15[4]" identifier [ number_literal ]) = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;)) (expression_statement "puVar15[8] = puVar15[6];" (assignment_expression "puVar15[8] = puVar15[6]" (subscript_expression "puVar15[8]" identifier [ number_literal ]) = (subscript_expression "puVar15[6]" identifier [ number_literal ])) ;) (expression_statement "puVar15[3] = puVar15[1];" (assignment_expression "puVar15[3] = puVar15[1]" (subscript_expression "puVar15[3]" identifier [ number_literal ]) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar15[0xb] = puVar15[9];" (assignment_expression "puVar15[0xb] = puVar15[9]" (subscript_expression "puVar15[0xb]" identifier [ number_literal ]) = (subscript_expression "puVar15[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[7] = puVar15[5];" (assignment_expression "puVar15[7] = puVar15[5]" (subscript_expression "puVar15[7]" identifier [ number_literal ]) = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = puVar13[6];" (assignment_expression "uVar6 = puVar13[6]" identifier = (subscript_expression "puVar13[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5 = (undefined4 *)puVar13[2];" (assignment_expression "puVar5 = (undefined4 *)puVar13[2]" identifier = (cast_expression "(undefined4 *)puVar13[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[2]" identifier [ number_literal ]))) ;) (expression_statement "puVar15[10] = puVar9[iVar10 + 9];" (assignment_expression "puVar15[10] = puVar9[iVar10 + 9]" (subscript_expression "puVar15[10]" identifier [ number_literal ]) = (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ])) ;) (expression_statement "puVar15[6] = uVar6;" (assignment_expression "puVar15[6] = uVar6" (subscript_expression "puVar15[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[2] = puVar5;" (assignment_expression "puVar15[2] = puVar5" (subscript_expression "puVar15[2]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar5 = puVar15;\n      }" { (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" * identifier) = identifier) ;) })) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" identifier = (cast_expression "(undefined4 *)puVar13[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[1]" identifier [ number_literal ]))) ;) (expression_statement "uVar6 = puVar13[5];" (assignment_expression "uVar6 = puVar13[5]" identifier = (subscript_expression "puVar13[5]" identifier [ number_literal ])) ;) (expression_statement "puVar15[9] = puVar13[9];" (assignment_expression "puVar15[9] = puVar13[9]" (subscript_expression "puVar15[9]" identifier [ number_literal ]) = (subscript_expression "puVar13[9]" identifier [ number_literal ])) ;) (expression_statement "puVar15[1] = puVar5;" (assignment_expression "puVar15[1] = puVar5" (subscript_expression "puVar15[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar15[5] = uVar6;" (assignment_expression "puVar15[5] = uVar6" (subscript_expression "puVar15[5]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" if (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" ( (binary_expression "puVar5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar5 = puVar15;\n      }" { (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" * identifier) = identifier) ;) })) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" identifier = (call_expression "FUN_0007d8c0(puVar15)" identifier (argument_list "(puVar15)" ( identifier )))) ;) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "(*(code *)puVar2)(puVar13);" (call_expression "(*(code *)puVar2)(puVar13)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "iVar7 = ((int *)((int)puVar9 + iVar14))[2];" (assignment_expression "iVar7 = ((int *)((int)puVar9 + iVar14))[2]" identifier = (subscript_expression "((int *)((int)puVar9 + iVar14))[2]" (parenthesized_expression "((int *)((int)puVar9 + iVar14))" ( (cast_expression "(int *)((int)puVar9 + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14)" ( (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "piVar1 = (int *)((int)puVar9 + iVar14);" (assignment_expression "piVar1 = (int *)((int)puVar9 + iVar14)" identifier = (cast_expression "(int *)((int)puVar9 + iVar14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14)" ( (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (while_statement "while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" { (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "piVar1[1] = iVar7;" (assignment_expression "piVar1[1] = iVar7" (subscript_expression "piVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar1[5] = piVar1[6];" (assignment_expression "piVar1[5] = piVar1[6]" (subscript_expression "piVar1[5]" identifier [ number_literal ]) = (subscript_expression "piVar1[6]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" if (parenthesized_expression "(iVar10 == 3)" ( (binary_expression "iVar10 == 3" identifier == number_literal) )) (compound_statement "{\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" { (expression_statement "puVar9[0xb] = 0;" (assignment_expression "puVar9[0xb] = 0" (subscript_expression "puVar9[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[4] = 0;" (assignment_expression "puVar9[4] = 0" (subscript_expression "puVar9[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar9[8] = 0;" (assignment_expression "puVar9[8] = 0" (subscript_expression "puVar9[8]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0007e838;" goto statement_identifier ;) })) (expression_statement "piVar1[9] = piVar1[10];" (assignment_expression "piVar1[9] = piVar1[10]" (subscript_expression "piVar1[9]" identifier [ number_literal ]) = (subscript_expression "piVar1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar1[3];" (assignment_expression "iVar7 = piVar1[3]" identifier = (subscript_expression "piVar1[3]" identifier [ number_literal ])) ;) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" identifier = (binary_expression "piVar1 + 1" identifier + number_literal)) ;) })) (expression_statement "puVar9[iVar10 + 1] = 0;" (assignment_expression "puVar9[iVar10 + 1] = 0" (subscript_expression "puVar9[iVar10 + 1]" identifier [ (binary_expression "iVar10 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar10 + 5] = 0;" (assignment_expression "puVar9[iVar10 + 5] = 0" (subscript_expression "puVar9[iVar10 + 5]" identifier [ (binary_expression "iVar10 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" identifier [ (binary_expression "iVar10 + 9" identifier + number_literal) ]) = number_literal) ;) (labeled_statement "LAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;" statement_identifier : (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" identifier = identifier) ;)) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" identifier = identifier) ;) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" identifier = identifier) ;) (if_statement "if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" if (parenthesized_expression "(puVar9[9] == 0)" ( (binary_expression "puVar9[9] == 0" (subscript_expression "puVar9[9]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" { (expression_statement "*param_1 = puVar15;" (assignment_expression "*param_1 = puVar15" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" ( (pointer_expression "*(code *)puVar2" * (cast_expression "(code *)puVar2" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9)" ( identifier ))) ;) })) }) (else_clause "else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" else (compound_statement "{\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" { (labeled_statement "LAB_0007e3f0:\n      iVar10 = puVar13[0xb];" statement_identifier : (expression_statement "iVar10 = puVar13[0xb];" (assignment_expression "iVar10 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;)) (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" identifier = number_literal) ;) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (if_statement "if (iVar10 == 0) {\n        iVar3 = 2;\n      }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar3 = 2;\n      }" { (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" identifier = number_literal) ;) })) (expression_statement "puVar5[3] = puVar5[2];" (assignment_expression "puVar5[3] = puVar5[2]" (subscript_expression "puVar5[3]" identifier [ number_literal ]) = (subscript_expression "puVar5[2]" identifier [ number_literal ])) ;) (expression_statement "puVar5[7] = puVar5[6];" (assignment_expression "puVar5[7] = puVar5[6]" (subscript_expression "puVar5[7]" identifier [ number_literal ]) = (subscript_expression "puVar5[6]" identifier [ number_literal ])) ;) (expression_statement "puVar5[10] = puVar5[9];" (assignment_expression "puVar5[10] = puVar5[9]" (subscript_expression "puVar5[10]" identifier [ number_literal ]) = (subscript_expression "puVar5[9]" identifier [ number_literal ])) ;) (expression_statement "puVar5[2] = puVar5[1];" (assignment_expression "puVar5[2] = puVar5[1]" (subscript_expression "puVar5[2]" identifier [ number_literal ]) = (subscript_expression "puVar5[1]" identifier [ number_literal ])) ;) (expression_statement "puVar5[6] = puVar5[5];" (assignment_expression "puVar5[6] = puVar5[5]" (subscript_expression "puVar5[6]" identifier [ number_literal ]) = (subscript_expression "puVar5[5]" identifier [ number_literal ])) ;) (if_statement "if (iVar10 != 0) {\n        iVar12 = 2;\n      }" if (parenthesized_expression "(iVar10 != 0)" ( (binary_expression "iVar10 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar12 = 2;\n      }" { (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" identifier = number_literal) ;) })) (expression_statement "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);" (assignment_expression "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (subscript_expression "puVar5[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" * (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" ( (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "puVar4 = (undefined4 *)puVar13[iVar3 + 1];" (assignment_expression "puVar4 = (undefined4 *)puVar13[iVar3 + 1]" identifier = (cast_expression "(undefined4 *)puVar13[iVar3 + 1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar13[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]))) ;) (expression_statement "puVar5[1] = puVar4;" (assignment_expression "puVar5[1] = puVar4" (subscript_expression "puVar5[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar5[5] = puVar13[iVar3 + 5];" (assignment_expression "puVar5[5] = puVar13[iVar3 + 5]" (subscript_expression "puVar5[5]" identifier [ number_literal ]) = (subscript_expression "puVar13[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ])) ;) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }" if (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" ( (binary_expression "puVar4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *puVar4 = puVar5;\n      }" { (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" * identifier) = identifier) ;) })) (expression_statement "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];" (assignment_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9]" (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" * (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" ( (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = (subscript_expression "puVar13[iVar12 + 9]" identifier [ (binary_expression "iVar12 + 9" identifier + number_literal) ])) ;) (expression_statement "puVar13[iVar3 + 1] = 0;" (assignment_expression "puVar13[iVar3 + 1] = 0" (subscript_expression "puVar13[iVar3 + 1]" identifier [ (binary_expression "iVar3 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar13[iVar3 + 5] = 0;" (assignment_expression "puVar13[iVar3 + 5] = 0" (subscript_expression "puVar13[iVar3 + 5]" identifier [ (binary_expression "iVar3 + 5" identifier + number_literal) ]) = number_literal) ;) (expression_statement "puVar13[iVar12 + 9] = 0;" (assignment_expression "puVar13[iVar12 + 9] = 0" (subscript_expression "puVar13[iVar12 + 9]" identifier [ (binary_expression "iVar12 + 9" identifier + number_literal) ]) = number_literal) ;) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" identifier = (call_expression "FUN_0007d8c0(puVar5)" identifier (argument_list "(puVar5)" ( identifier )))) ;) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" identifier [ (binary_expression "iVar7 + 5" identifier + number_literal) ]) = identifier) ;) (expression_statement "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);" (assignment_expression "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14)" identifier = (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" * (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" ( (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) ))))) ;) (expression_statement "iVar3 = FUN_0007d8c0(puVar13);" (assignment_expression "iVar3 = FUN_0007d8c0(puVar13)" identifier = (call_expression "FUN_0007d8c0(puVar13)" identifier (argument_list "(puVar13)" ( identifier )))) ;) (expression_statement "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;" (assignment_expression "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3" (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" * (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" ( (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "param_2 = (param_2 + iVar10) - iVar3;" (assignment_expression "param_2 = (param_2 + iVar10) - iVar3" identifier = (binary_expression "(param_2 + iVar10) - iVar3" (parenthesized_expression "(param_2 + iVar10)" ( (binary_expression "param_2 + iVar10" identifier + identifier) )) - identifier)) ;) }))) })) (goto_statement "goto joined_r0x0007e0e8;" goto statement_identifier ;) (while_statement "while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" { (expression_statement "iVar3 = puVar13[0xb];" (assignment_expression "iVar3 = puVar13[0xb]" identifier = (subscript_expression "puVar13[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" identifier = (binary_expression "puVar13 + 1" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) break;" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (labeled_statement "LAB_0007e2bc:\n    puVar13[9] = iVar3;" statement_identifier : (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" identifier [ number_literal ]) = identifier) ;)) (if_statement "if (iVar10 == 2) goto LAB_0007e2c8;" if (parenthesized_expression "(iVar10 == 2)" ( (binary_expression "iVar10 == 2" identifier == number_literal) )) (goto_statement "goto LAB_0007e2c8;" goto statement_identifier ;)) })) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (labeled_statement "LAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;" statement_identifier : (expression_statement "puVar9[iVar16 + 9] = 0;" (assignment_expression "puVar9[iVar16 + 9] = 0" (subscript_expression "puVar9[iVar16 + 9]" identifier [ (binary_expression "iVar16 + 9" identifier + number_literal) ]) = number_literal) ;)) (do_statement "do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );" do (compound_statement "{\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  }" { (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" identifier = identifier) ;) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }" if (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" ( (binary_expression "puVar5 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return iVar17;\n    }" { (return_statement "return iVar17;" return identifier ;) })) (while_statement "while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" while (parenthesized_expression "(puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13)" ( (comma_expression "puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13" (assignment_expression "puVar9 = puVar5" identifier = identifier) , (binary_expression "(undefined4 *)puVar9[1] != puVar13" (cast_expression "(undefined4 *)puVar9[1]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[1]" identifier [ number_literal ])) != identifier)) )) (compound_statement "{\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" { (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" identifier = number_literal) ;) (if_statement "if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[2] == puVar13)" ( (binary_expression "(undefined4 *)puVar9[2] == puVar13" (cast_expression "(undefined4 *)puVar9[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[2]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        iVar16 = 1;\n      }" { (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) }) (else_clause "else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" else (if_statement "if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" if (parenthesized_expression "((undefined4 *)puVar9[3] == puVar13)" ( (binary_expression "(undefined4 *)puVar9[3] == puVar13" (cast_expression "(undefined4 *)puVar9[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar9[3]" identifier [ number_literal ])) == identifier) )) (compound_statement "{\n        iVar16 = 2;\n      }" { (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;) })))) (expression_statement "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;" (assignment_expression "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" identifier [ (binary_expression "iVar16 + 5" identifier + number_literal) ]) = (binary_expression "puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" identifier [ (binary_expression "iVar16 + 5" identifier + number_literal) ]) + number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" identifier = identifier) ;) (if_statement "if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }" if (parenthesized_expression "((undefined4 *)*puVar9 == (undefined4 *)0x0)" ( (binary_expression "(undefined4 *)*puVar9 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier)) == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return iVar17;\n      }" { (return_statement "return iVar17;" return identifier ;) })) })) (expression_statement "puVar9[5] = puVar9[5] + -1;" (assignment_expression "puVar9[5] = puVar9[5] + -1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) = (binary_expression "puVar9[5] + -1" (subscript_expression "puVar9[5]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" identifier = (cast_expression "(undefined4 *)*puVar9" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar9" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) (labeled_statement "LAB_0007e2c8:\n  iVar16 = 2;" statement_identifier : (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" identifier = number_literal) ;)) (goto_statement "goto LAB_0007e2cc;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * LIT) + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return IDENT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) }))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) (else_clause else (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) (compound_statement { (while_statement while (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))) }) while (parenthesized_expression ( BOOL )) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (labeled_statement statement_identifier : (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 (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + IDENT) )) - IDENT)) ;) }))) })) (goto_statement goto statement_identifier ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = LIT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) = (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return IDENT ;) })) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_0007e08c(undefined4 *param_1,int param_2)\n\n{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" (primitive_type "int") (function_declarator "FUN_0007e08c(undefined4 *param_1,int param_2)" (identifier "FUN_0007e08c") (parameter_list "(undefined4 *param_1,int param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  int *piVar1;\n  undefined *puVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  undefined4 *puVar9;\n  int iVar10;\n  undefined4 uVar11;\n  int iVar12;\n  undefined4 *puVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  int iVar16;\n  int iVar17;\n  \n  iVar17 = 0;\n  iVar16 = -1;\n  puVar5 = (undefined4 *)*param_1;\njoined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );\nLAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];\n  iVar10 = 0;\n  if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }\n  goto joined_r0x0007e0e8;\n  while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }\n  iVar16 = 1;\nLAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;\n  do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );\nLAB_0007e2c8:\n  iVar16 = 2;\n  goto LAB_0007e2cc;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 *puVar9;" (type_identifier "undefined4") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar16 = -1;" (assignment_expression "iVar16 = -1" (identifier "iVar16") (= "=") (number_literal "-1")) (; ";")) (expression_statement "puVar5 = (undefined4 *)*param_1;" (assignment_expression "puVar5 = (undefined4 *)*param_1" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (labeled_statement "joined_r0x0007e0e8:\n  do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" (statement_identifier "joined_r0x0007e0e8") (: ":") (do_statement "do {\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }\n    if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }\n    iVar16 = 0;\n    puVar5 = (undefined4 *)*puVar9;\n    iVar3 = puVar9[1];\njoined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }\n    puVar13 = puVar9 + iVar16;\n    puVar5 = (undefined4 *)puVar13[1];\n    iVar3 = iVar16 + 1;\n    puVar4 = puVar5;\n    if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }\n  }" ({ "{") (while_statement "while( true ) {\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }\n      param_2 = iVar3 - (puVar9[5] + 1);\n      if (param_2 < 0) break;\n      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;\n      iVar3 = param_2 - (puVar9[6] + 1);\n      if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }\n      if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }\n    }" ({ "{") (while_statement "while( true ) {\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar3 = param_2;\n        puVar9 = puVar5;\n        if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }\n        if ((int)puVar9[5] <= iVar3) break;\n        puVar13 = (undefined4 *)puVar9[1];\n        puVar5 = puVar13;\n        param_2 = iVar3;\n        if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }\n      }" ({ "{") (expression_statement "iVar3 = param_2;" (assignment_expression "iVar3 = param_2" (identifier "iVar3") (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar9 = puVar5;" (assignment_expression "puVar9 = puVar5" (identifier "puVar9") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) {\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }\n          if (iVar16 == -1) {\n            return 0;\n          }\n          goto LAB_0007e130;\n        }" ({ "{") (if_statement "if (iVar17 == 0) {\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar17 = *(int *)(iVar16 * 4 + 0x24);\n          }" ({ "{") (expression_statement "iVar17 = *(int *)(iVar16 * 4 + 0x24);" (assignment_expression "iVar17 = *(int *)(iVar16 * 4 + 0x24)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar16 * 4 + 0x24)" (* "*") (cast_expression "(int *)(iVar16 * 4 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar16 * 4 + 0x24)" (( "(") (binary_expression "iVar16 * 4 + 0x24" (binary_expression "iVar16 * 4" (identifier "iVar16") (* "*") (number_literal "4")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (iVar16 == -1) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(iVar16 == -1)" (( "(") (binary_expression "iVar16 == -1" (identifier "iVar16") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto LAB_0007e130;" (goto "goto") (statement_identifier "LAB_0007e130") (; ";")) (} "}"))) (if_statement "if ((int)puVar9[5] <= iVar3) break;" (if "if") (parenthesized_expression "((int)puVar9[5] <= iVar3)" (( "(") (binary_expression "(int)puVar9[5] <= iVar3" (cast_expression "(int)puVar9[5]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]"))) (<= "<=") (identifier "iVar3")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar13 = (undefined4 *)puVar9[1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar9[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar5 = puVar13;" (assignment_expression "puVar5 = puVar13" (identifier "puVar5") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" (identifier "param_2") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (puVar13[10] == 0) {\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" (if "if") (parenthesized_expression "(puVar13[10] == 0)" (( "(") (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" (identifier "puVar13") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar15 = (undefined4 *)puVar9[2];\n          iVar7 = 1;\n          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }\n          iVar3 = 0;\n          goto LAB_0007e5d0;\n        }" ({ "{") (expression_statement "puVar15 = (undefined4 *)puVar9[2];" (assignment_expression "puVar15 = (undefined4 *)puVar9[2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar9[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" (if "if") (parenthesized_expression "((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0))" (( "(") (binary_expression "(puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)" (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(iVar12 = 1, puVar15[10] == 0)" (( "(") (comma_expression "iVar12 = 1, puVar15[10] == 0" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (, ",") (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            iVar10 = 0;\n            iVar14 = 0;\n            goto LAB_0007e740;\n          }" ({ "{") (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007e740;" (goto "goto") (statement_identifier "LAB_0007e740") (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007e5d0;" (goto "goto") (statement_identifier "LAB_0007e5d0") (; ";")) (} "}"))) (} "}"))) (expression_statement "param_2 = iVar3 - (puVar9[5] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[5] + 1)" (identifier "param_2") (= "=") (binary_expression "iVar3 - (puVar9[5] + 1)" (identifier "iVar3") (- "-") (parenthesized_expression "(puVar9[5] + 1)" (( "(") (binary_expression "puVar9[5] + 1" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_2 < 0) break;" (if "if") (parenthesized_expression "(param_2 < 0)" (( "(") (binary_expression "param_2 < 0" (identifier "param_2") (< "<") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;" (if "if") (parenthesized_expression "(param_2 < (int)puVar9[6])" (( "(") (binary_expression "param_2 < (int)puVar9[6]" (identifier "param_2") (< "<") (cast_expression "(int)puVar9[6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")))) () ")")) (goto_statement "goto LAB_0007e3bc;" (goto "goto") (statement_identifier "LAB_0007e3bc") (; ";"))) (expression_statement "iVar3 = param_2 - (puVar9[6] + 1);" (assignment_expression "iVar3 = param_2 - (puVar9[6] + 1)" (identifier "iVar3") (= "=") (binary_expression "param_2 - (puVar9[6] + 1)" (identifier "param_2") (- "-") (parenthesized_expression "(puVar9[6] + 1)" (( "(") (binary_expression "puVar9[6] + 1" (subscript_expression "puVar9[6]" (identifier "puVar9") ([ "[") (number_literal "6") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar3 < 0) {\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" (if "if") (parenthesized_expression "(iVar3 < 0)" (( "(") (binary_expression "iVar3 < 0" (identifier "iVar3") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }\nLAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;\n        iVar3 = puVar9[1];\n        goto joined_r0x0007e264;\n      }" ({ "{") (if_statement "if (iVar17 == 0) {\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }\n        else {\n          iVar16 = 1;\n        }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar17 = puVar9[10];\n          iVar16 = 1;\n        }" ({ "{") (expression_statement "iVar17 = puVar9[10];" (assignment_expression "iVar17 = puVar9[10]" (identifier "iVar17") (= "=") (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          iVar16 = 1;\n        }" (else "else") (compound_statement "{\n          iVar16 = 1;\n        }" ({ "{") (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0007e130:\n        puVar5 = (undefined4 *)*puVar9;" (statement_identifier "LAB_0007e130") (: ":") (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";"))) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (goto_statement "goto joined_r0x0007e264;" (goto "goto") (statement_identifier "joined_r0x0007e264") (; ";")) (} "}"))) (if_statement "if (iVar3 < (int)puVar9[7]) {\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }\n      else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar3 < (int)puVar9[7])" (( "(") (binary_expression "iVar3 < (int)puVar9[7]" (identifier "iVar3") (< "<") (cast_expression "(int)puVar9[7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")))) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)puVar9[3];\n        iVar10 = 1;\n        param_2 = iVar3;\n        if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)puVar9[3];" (assignment_expression "puVar5 = (undefined4 *)puVar9[3]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar9[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" (identifier "param_2") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (puVar5[10] == 0) {\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" (if "if") (parenthesized_expression "(puVar5[10] == 0)" (( "(") (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = 2;\n          goto LAB_0007e3d8;\n        }" ({ "{") (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_0007e3d8;" (goto "goto") (statement_identifier "LAB_0007e3d8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" (else "else") (compound_statement "{\n        param_2 = iVar3 - (puVar9[7] + 1);\n        if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }\n        puVar15 = (undefined4 *)puVar9[4];\n        puVar5 = puVar15;\n        if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }\n      }" ({ "{") (expression_statement "param_2 = iVar3 - (puVar9[7] + 1);" (assignment_expression "param_2 = iVar3 - (puVar9[7] + 1)" (identifier "param_2") (= "=") (binary_expression "iVar3 - (puVar9[7] + 1)" (identifier "iVar3") (- "-") (parenthesized_expression "(puVar9[7] + 1)" (( "(") (binary_expression "puVar9[7] + 1" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_2 < 0) {\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" (if "if") (parenthesized_expression "(param_2 < 0)" (( "(") (binary_expression "param_2 < 0" (identifier "param_2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }\n          goto LAB_0007e130;\n        }" ({ "{") (if_statement "if (iVar17 == 0) {\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }\n          else {\n            iVar16 = 2;\n          }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar17 = puVar9[0xb];\n            iVar16 = 2;\n          }" ({ "{") (expression_statement "iVar17 = puVar9[0xb];" (assignment_expression "iVar17 = puVar9[0xb]" (identifier "iVar17") (= "=") (subscript_expression "puVar9[0xb]" (identifier "puVar9") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n            iVar16 = 2;\n          }" (else "else") (compound_statement "{\n            iVar16 = 2;\n          }" ({ "{") (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}")))) (goto_statement "goto LAB_0007e130;" (goto "goto") (statement_identifier "LAB_0007e130") (; ";")) (} "}"))) (expression_statement "puVar15 = (undefined4 *)puVar9[4];" (assignment_expression "puVar15 = (undefined4 *)puVar9[4]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar9[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" (identifier "puVar5") (= "=") (identifier "puVar15")) (; ";")) (if_statement "if (puVar15[10] == 0) {\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" (if "if") (parenthesized_expression "(puVar15[10] == 0)" (( "(") (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar13 = (undefined4 *)puVar9[3];\n          if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }\n          iVar7 = 3;\n          iVar14 = 8;\n          goto LAB_0007e3f0;\n        }" ({ "{") (expression_statement "puVar13 = (undefined4 *)puVar9[3];" (assignment_expression "puVar13 = (undefined4 *)puVar9[3]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar9[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (puVar13[10] == 0) {\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" (if "if") (parenthesized_expression "(puVar13[10] == 0)" (( "(") (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" (identifier "puVar13") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar10 = 2;\n            iVar7 = 3;\n            iVar14 = 8;\n            goto LAB_0007e740;\n          }" ({ "{") (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" (identifier "iVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" (identifier "iVar14") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_0007e740;" (goto "goto") (statement_identifier "LAB_0007e740") (; ";")) (} "}"))) (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" (identifier "iVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar14 = 8;" (assignment_expression "iVar14 = 8" (identifier "iVar14") (= "=") (number_literal "8")) (; ";")) (goto_statement "goto LAB_0007e3f0;" (goto "goto") (statement_identifier "LAB_0007e3f0") (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if (iVar17 == 0) {\n      iVar17 = puVar9[9];\n    }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar17 = puVar9[9];\n    }" ({ "{") (expression_statement "iVar17 = puVar9[9];" (assignment_expression "iVar17 = puVar9[9]" (identifier "iVar17") (= "=") (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "iVar3 = puVar9[1];" (assignment_expression "iVar3 = puVar9[1]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (labeled_statement "joined_r0x0007e264:\n    if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" (statement_identifier "joined_r0x0007e264") (: ":") (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }\n    else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }\n    }" ({ "{") (if_statement "if (puVar9[10] == 0) {\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }\n      else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" (if "if") (parenthesized_expression "(puVar9[10] == 0)" (( "(") (binary_expression "puVar9[10] == 0" (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_safefree_000b23d0)(puVar9);\n          *param_1 = 0;\n          return iVar17;\n        }" ({ "{") (expression_statement "(*(code *)PTR_safefree_000b23d0)(puVar9);" (call_expression "(*(code *)PTR_safefree_000b23d0)(puVar9)" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" (( "(") (pointer_expression "*(code *)PTR_safefree_000b23d0" (* "*") (cast_expression "(code *)PTR_safefree_000b23d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000b23d0"))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (expression_statement "*param_1 = 0;" (assignment_expression "*param_1 = 0" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "0")) (; ";")) (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" (else "else") (if_statement "if (iVar3 == 0) {\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        puVar5 = (undefined4 *)0x0;\n        goto LAB_0007e284;\n      }" ({ "{") (expression_statement "puVar5 = (undefined4 *)0x0;" (assignment_expression "puVar5 = (undefined4 *)0x0" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0007e284;" (goto "goto") (statement_identifier "LAB_0007e284") (; ";")) (} "}"))))) (} "}")) (else_clause "else if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" (else "else") (if_statement "if ((iVar3 == 0) && (puVar9[10] != 0)) {\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" (if "if") (parenthesized_expression "((iVar3 == 0) && (puVar9[10] != 0))" (( "(") (binary_expression "(iVar3 == 0) && (puVar9[10] != 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar9[10] != 0)" (( "(") (binary_expression "puVar9[10] != 0" (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;\n      iVar3 = puVar9[iVar16 + 10];\n      iVar10 = iVar16 + 1;\n      if (iVar3 == 0) goto LAB_0007e2cc;\n      puVar13 = puVar9 + iVar16;\n      goto LAB_0007e2bc;\n    }" ({ "{") (labeled_statement "LAB_0007e284:\n      if (iVar16 == 2) goto LAB_0007e2c8;" (statement_identifier "LAB_0007e284") (: ":") (if_statement "if (iVar16 == 2) goto LAB_0007e2c8;" (if "if") (parenthesized_expression "(iVar16 == 2)" (( "(") (binary_expression "iVar16 == 2" (identifier "iVar16") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0007e2c8;" (goto "goto") (statement_identifier "LAB_0007e2c8") (; ";")))) (expression_statement "iVar3 = puVar9[iVar16 + 10];" (assignment_expression "iVar3 = puVar9[iVar16 + 10]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[iVar16 + 10]" (identifier "puVar9") ([ "[") (binary_expression "iVar16 + 10" (identifier "iVar16") (+ "+") (number_literal "10")) (] "]"))) (; ";")) (expression_statement "iVar10 = iVar16 + 1;" (assignment_expression "iVar10 = iVar16 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 == 0) goto LAB_0007e2cc;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007e2cc;" (goto "goto") (statement_identifier "LAB_0007e2cc") (; ";"))) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" (identifier "puVar13") (= "=") (binary_expression "puVar9 + iVar16" (identifier "puVar9") (+ "+") (identifier "iVar16"))) (; ";")) (goto_statement "goto LAB_0007e2bc;" (goto "goto") (statement_identifier "LAB_0007e2bc") (; ";")) (} "}")))))) (expression_statement "puVar13 = puVar9 + iVar16;" (assignment_expression "puVar13 = puVar9 + iVar16" (identifier "puVar13") (= "=") (binary_expression "puVar9 + iVar16" (identifier "puVar9") (+ "+") (identifier "iVar16"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar13[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar3 = iVar16 + 1;" (assignment_expression "iVar3 = iVar16 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar5[10] == 0) {\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }\n    else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" (if "if") (parenthesized_expression "(puVar5[10] == 0)" (( "(") (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar8 = (undefined4 *)puVar13[2];\n      puVar4 = (undefined4 *)puVar8[1];\n      puVar15 = puVar8;\n      if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }\n    }" ({ "{") (expression_statement "puVar8 = (undefined4 *)puVar13[2];" (assignment_expression "puVar8 = (undefined4 *)puVar13[2]" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)puVar13[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar8[1];" (assignment_expression "puVar4 = (undefined4 *)puVar8[1]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar8[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "puVar15 = puVar8;" (assignment_expression "puVar15 = puVar8" (identifier "puVar15") (= "=") (identifier "puVar8")) (; ";")) (if_statement "if (puVar8[10] == 0) {\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }\n      else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" (if "if") (parenthesized_expression "(puVar8[10] == 0)" (( "(") (binary_expression "puVar8[10] == 0" (subscript_expression "puVar8[10]" (identifier "puVar8") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = puVar13[9];\n        uVar6 = puVar8[5];\n        puVar5[3] = puVar4;\n        puVar5[10] = uVar11;\n        puVar5[7] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        puVar4 = (undefined4 *)puVar8[2];\n        uVar6 = puVar8[6];\n        puVar5[0xb] = puVar8[9];\n        puVar5[4] = puVar4;\n        puVar5[8] = uVar6;\n        if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }\n        (*(code *)PTR_safefree_000b23d0)();\n        uVar6 = FUN_0007d8c0(puVar5);\n        puVar13[5] = uVar6;\n        if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }\n        puVar2 = PTR_safefree_000b23d0;\n        if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }\n        param_2 = puVar5[5] + puVar5[6] + 1;\n      }" ({ "{") (expression_statement "uVar11 = puVar13[9];" (assignment_expression "uVar11 = puVar13[9]" (identifier "uVar11") (= "=") (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar8[5];" (assignment_expression "uVar6 = puVar8[5]" (identifier "uVar6") (= "=") (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar5[3] = puVar4;" (assignment_expression "puVar5[3] = puVar4" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar5[10] = uVar11;" (assignment_expression "puVar5[10] = uVar11" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar5[7] = uVar6;" (assignment_expression "puVar5[7] = uVar6" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *puVar4 = puVar5;\n        }" ({ "{") (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (expression_statement "puVar4 = (undefined4 *)puVar8[2];" (assignment_expression "puVar4 = (undefined4 *)puVar8[2]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar8[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar6 = puVar8[6];" (assignment_expression "uVar6 = puVar8[6]" (identifier "uVar6") (= "=") (subscript_expression "puVar8[6]" (identifier "puVar8") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar5[0xb] = puVar8[9];" (assignment_expression "puVar5[0xb] = puVar8[9]" (subscript_expression "puVar5[0xb]" (identifier "puVar5") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "puVar8[9]" (identifier "puVar8") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar5[4] = puVar4;" (assignment_expression "puVar5[4] = puVar4" (subscript_expression "puVar5[4]" (identifier "puVar5") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar5[8] = uVar6;" (assignment_expression "puVar5[8] = uVar6" (subscript_expression "puVar5[8]" (identifier "puVar5") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n          *puVar4 = puVar5;\n        }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          *puVar4 = puVar5;\n        }" ({ "{") (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_safefree_000b23d0)();" (call_expression "(*(code *)PTR_safefree_000b23d0)()" (parenthesized_expression "(*(code *)PTR_safefree_000b23d0)" (( "(") (pointer_expression "*(code *)PTR_safefree_000b23d0" (* "*") (cast_expression "(code *)PTR_safefree_000b23d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_safefree_000b23d0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" (identifier "uVar6") (= "=") (call_expression "FUN_0007d8c0(puVar5)" (identifier "FUN_0007d8c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "puVar13[5] = uVar6;" (assignment_expression "puVar13[5] = uVar6" (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (iVar16 == 2) {\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }\n        else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" (if "if") (parenthesized_expression "(iVar16 == 2)" (( "(") (binary_expression "iVar16 == 2" (identifier "iVar16") (== "==") (number_literal "2")) () ")")) (compound_statement "{\nLAB_0007e554:\n          iVar3 = 3;\n          iVar10 = 2;\nLAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;\n          puVar9[iVar3 + 1] = 0;\n          puVar9[iVar3 + 5] = 0;\n          iVar3 = puVar9[9];\n        }" ({ "{") (labeled_statement "LAB_0007e554:\n          iVar3 = 3;" (statement_identifier "LAB_0007e554") (: ":") (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" (identifier "iVar3") (= "=") (number_literal "3")) (; ";"))) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";")) (labeled_statement "LAB_0007e55c:\n          puVar9[iVar10 + 9] = 0;" (statement_identifier "LAB_0007e55c") (: ":") (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "puVar9[iVar3 + 1] = 0;" (assignment_expression "puVar9[iVar3 + 1] = 0" (subscript_expression "puVar9[iVar3 + 1]" (identifier "puVar9") ([ "[") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[iVar3 + 5] = 0;" (assignment_expression "puVar9[iVar3 + 5] = 0" (subscript_expression "puVar9[iVar3 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar3 + 5" (identifier "iVar3") (+ "+") (number_literal "5")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" (else "else") (compound_statement "{\n          iVar7 = puVar13[10];\n          iVar10 = iVar16;\n          if (iVar7 == 0) goto LAB_0007e55c;\n          do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);\n          puVar9[10] = 0;\n          puVar9[3] = 0;\n          puVar9[7] = 0;\n          iVar3 = puVar9[9];\n        }" ({ "{") (expression_statement "iVar7 = puVar13[10];" (assignment_expression "iVar7 = puVar13[10]" (identifier "iVar7") (= "=") (subscript_expression "puVar13[10]" (identifier "puVar13") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar10 = iVar16;" (assignment_expression "iVar10 = iVar16" (identifier "iVar10") (= "=") (identifier "iVar16")) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0007e55c;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007e55c;" (goto "goto") (statement_identifier "LAB_0007e55c") (; ";"))) (do_statement "do {\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          } while (iVar7 != 0);" (do "do") (compound_statement "{\n            puVar13[9] = iVar7;\n            puVar13[2] = puVar13[3];\n            puVar13[6] = puVar13[7];\n            if (iVar3 == 2) goto LAB_0007e554;\n            iVar7 = puVar13[0xb];\n            iVar3 = 2;\n            puVar13 = puVar13 + 1;\n          }" ({ "{") (expression_statement "puVar13[9] = iVar7;" (assignment_expression "puVar13[9] = iVar7" (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "puVar13[2] = puVar13[3];" (assignment_expression "puVar13[2] = puVar13[3]" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar13[6] = puVar13[7];" (assignment_expression "puVar13[6] = puVar13[7]" (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar13[7]" (identifier "puVar13") ([ "[") (number_literal "7") (] "]"))) (; ";")) (if_statement "if (iVar3 == 2) goto LAB_0007e554;" (if "if") (parenthesized_expression "(iVar3 == 2)" (( "(") (binary_expression "iVar3 == 2" (identifier "iVar3") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0007e554;" (goto "goto") (statement_identifier "LAB_0007e554") (; ";"))) (expression_statement "iVar7 = puVar13[0xb];" (assignment_expression "iVar7 = puVar13[0xb]" (identifier "iVar7") (= "=") (subscript_expression "puVar13[0xb]" (identifier "puVar13") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" (identifier "iVar3") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "puVar9[10] = 0;" (assignment_expression "puVar9[10] = 0" (subscript_expression "puVar9[10]" (identifier "puVar9") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[3] = 0;" (assignment_expression "puVar9[3] = 0" (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[7] = 0;" (assignment_expression "puVar9[7] = 0" (subscript_expression "puVar9[7]" (identifier "puVar9") ([ "[") (number_literal "7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = puVar9[9];" (assignment_expression "iVar3 = puVar9[9]" (identifier "iVar3") (= "=") (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}")))) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" (identifier "puVar2") (= "=") (identifier "PTR_safefree_000b23d0")) (; ";")) (if_statement "if (iVar3 == 0) {\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *param_1 = puVar5;\n          *puVar5 = 0;\n          (*(code *)puVar2)(puVar9);\n        }" ({ "{") (expression_statement "*param_1 = puVar5;" (assignment_expression "*param_1 = puVar5" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "*puVar5 = 0;" (assignment_expression "*puVar5 = 0" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (expression_statement "param_2 = puVar5[5] + puVar5[6] + 1;" (assignment_expression "param_2 = puVar5[5] + puVar5[6] + 1" (identifier "param_2") (= "=") (binary_expression "puVar5[5] + puVar5[6] + 1" (binary_expression "puVar5[5] + puVar5[6]" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (+ "+") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" (else "else") (compound_statement "{\n        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }\n        puVar13[9] = puVar15[9];\n        puVar5 = puVar8;\n        param_2 = 0;\n      }" ({ "{") (while_statement "while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" (while "while") (parenthesized_expression "(puVar5 = puVar4, puVar5 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar5 = puVar4, puVar5 != (undefined4 *)0x0" (assignment_expression "puVar5 = puVar4" (identifier "puVar5") (= "=") (identifier "puVar4")) (, ",") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n          puVar15 = puVar5;\n          puVar4 = (undefined4 *)puVar5[1];\n        }" ({ "{") (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" (identifier "puVar15") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar5[1];" (assignment_expression "puVar4 = (undefined4 *)puVar5[1]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar5[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}"))) (expression_statement "puVar13[9] = puVar15[9];" (assignment_expression "puVar13[9] = puVar15[9]" (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar5 = puVar8;" (assignment_expression "puVar5 = puVar8" (identifier "puVar5") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "param_2 = 0;" (assignment_expression "param_2 = 0" (identifier "param_2") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" (else "else") (compound_statement "{\n      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }\nLAB_0007e21c:\n      iVar3 = puVar4[0xb];\n      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }\n      puVar13[9] = iVar3;\n      param_2 = puVar13[5] + -1;\n    }" ({ "{") (while_statement "while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" (while "while") (parenthesized_expression "(puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0)" (( "(") (comma_expression "puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (, ",") (binary_expression "puVar9 != (undefined4 *)0x0" (identifier "puVar9") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (compound_statement "{\n        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }\n        puVar15 = puVar4 + 2;\n        puVar4 = (undefined4 *)*puVar15;\n        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }\n      }" ({ "{") (while_statement "while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" (while "while") (parenthesized_expression "((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)))" (( "(") (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))" (( "(") (comma_expression "puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (assignment_expression "puVar15 = (undefined4 *)puVar4[4]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]")))) (, ",") (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0 ||\n               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (binary_expression "(undefined4 *)puVar4[4] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[4]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (|| "||") (parenthesized_expression "(puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0)" (( "(") (comma_expression "puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0" (assignment_expression "puVar15 = (undefined4 *)puVar4[3]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]")))) (, ",") (binary_expression "(undefined4 *)puVar4[3] != (undefined4 *)0x0" (cast_expression "(undefined4 *)puVar4[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[3]" (identifier "puVar4") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")))) () ")")) () ")")) (compound_statement "{\n          puVar4 = puVar15;\n          puVar9 = (undefined4 *)puVar4[1];\n          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;\n        }" ({ "{") (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" (identifier "puVar4") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "puVar9 = (undefined4 *)puVar4[1];" (assignment_expression "puVar9 = (undefined4 *)puVar4[1]" (identifier "puVar9") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (if_statement "if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;" (if "if") (parenthesized_expression "(puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar9 == (undefined4 *)0x0" (identifier "puVar9") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0007e21c;" (goto "goto") (statement_identifier "LAB_0007e21c") (; ";"))) (} "}"))) (expression_statement "puVar15 = puVar4 + 2;" (assignment_expression "puVar15 = puVar4 + 2" (identifier "puVar15") (= "=") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar4 = (undefined4 *)*puVar15;" (assignment_expression "puVar4 = (undefined4 *)*puVar15" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15")))) (; ";")) (if_statement "if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {\n          puVar4 = puVar9;\n        }" (if "if") (parenthesized_expression "((undefined4 *)*puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)*puVar15 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar15" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          puVar4 = puVar9;\n        }" ({ "{") (expression_statement "puVar4 = puVar9;" (assignment_expression "puVar4 = puVar9" (identifier "puVar4") (= "=") (identifier "puVar9")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0007e21c:\n      iVar3 = puVar4[0xb];" (statement_identifier "LAB_0007e21c") (: ":") (expression_statement "iVar3 = puVar4[0xb];" (assignment_expression "iVar3 = puVar4[0xb]" (identifier "iVar3") (= "=") (subscript_expression "puVar4[0xb]" (identifier "puVar4") ([ "[") (number_literal "0xb") (] "]"))) (; ";"))) (if_statement "if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {\n        iVar3 = puVar4[9];\n      }" (if "if") (parenthesized_expression "((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0))" (( "(") (binary_expression "(iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = puVar4[10], iVar3 == 0)" (( "(") (comma_expression "iVar3 = puVar4[10], iVar3 == 0" (assignment_expression "iVar3 = puVar4[10]" (identifier "iVar3") (= "=") (subscript_expression "puVar4[10]" (identifier "puVar4") ([ "[") (number_literal "10") (] "]"))) (, ",") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar3 = puVar4[9];\n      }" ({ "{") (expression_statement "iVar3 = puVar4[9];" (assignment_expression "iVar3 = puVar4[9]" (identifier "iVar3") (= "=") (subscript_expression "puVar4[9]" (identifier "puVar4") ([ "[") (number_literal "9") (] "]"))) (; ";")) (} "}"))) (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_2 = puVar13[5] + -1;" (assignment_expression "param_2 = puVar13[5] + -1" (identifier "param_2") (= "=") (binary_expression "puVar13[5] + -1" (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (labeled_statement "LAB_0007e3bc:\n  puVar5 = (undefined4 *)puVar9[2];" (statement_identifier "LAB_0007e3bc") (: ":") (expression_statement "puVar5 = (undefined4 *)puVar9[2];" (assignment_expression "puVar5 = (undefined4 *)puVar9[2]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar9[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]")))) (; ";"))) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (if_statement "if (puVar5[10] == 0) {\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" (if "if") (parenthesized_expression "(puVar5[10] == 0)" (( "(") (binary_expression "puVar5[10] == 0" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = 1;\nLAB_0007e3d8:\n    iVar14 = iVar10 * 4;\n    puVar13 = (undefined4 *)puVar9[iVar10 + 1];\n    iVar3 = iVar7 * 4;\n    if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }\n  }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0007e3d8:\n    iVar14 = iVar10 * 4;" (statement_identifier "LAB_0007e3d8") (: ":") (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" (identifier "iVar14") (= "=") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) (; ";"))) (expression_statement "puVar13 = (undefined4 *)puVar9[iVar10 + 1];" (assignment_expression "puVar13 = (undefined4 *)puVar9[iVar10 + 1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar9[iVar10 + 1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[iVar10 + 1]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "iVar3 = iVar7 * 4;" (assignment_expression "iVar3 = iVar7 * 4" (identifier "iVar3") (= "=") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) (; ";")) (if_statement "if (puVar13[10] == 0) {\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }\n    else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" (if "if") (parenthesized_expression "(puVar13[10] == 0)" (( "(") (binary_expression "puVar13[10] == 0" (subscript_expression "puVar13[10]" (identifier "puVar13") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      puVar4 = puVar9 + iVar7;\n      puVar15 = (undefined4 *)puVar4[2];\n      iVar12 = iVar7 + 1;\n      if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }\nLAB_0007e740:\n      puVar15[4] = puVar15[2];\n      puVar15[8] = puVar15[6];\n      puVar15[3] = puVar15[1];\n      puVar15[0xb] = puVar15[9];\n      puVar15[7] = puVar15[5];\n      uVar6 = puVar13[6];\n      puVar5 = (undefined4 *)puVar13[2];\n      puVar15[10] = puVar9[iVar10 + 9];\n      puVar15[6] = uVar6;\n      puVar15[2] = puVar5;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      puVar5 = (undefined4 *)puVar13[1];\n      uVar6 = puVar13[5];\n      puVar15[9] = puVar13[9];\n      puVar15[1] = puVar5;\n      puVar15[5] = uVar6;\n      if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }\n      uVar6 = FUN_0007d8c0(puVar15);\n      puVar2 = PTR_safefree_000b23d0;\n      puVar9[iVar7 + 5] = uVar6;\n      (*(code *)puVar2)(puVar13);\n      iVar7 = ((int *)((int)puVar9 + iVar14))[2];\n      piVar1 = (int *)((int)puVar9 + iVar14);\n      while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }\n      puVar9[iVar10 + 1] = 0;\n      puVar9[iVar10 + 5] = 0;\n      puVar9[iVar10 + 9] = 0;\nLAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;\n      puVar5 = puVar15;\n      param_2 = iVar3;\n      if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }\n    }" ({ "{") (expression_statement "puVar4 = puVar9 + iVar7;" (assignment_expression "puVar4 = puVar9 + iVar7" (identifier "puVar4") (= "=") (binary_expression "puVar9 + iVar7" (identifier "puVar9") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "puVar15 = (undefined4 *)puVar4[2];" (assignment_expression "puVar15 = (undefined4 *)puVar4[2]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "iVar12 = iVar7 + 1;" (assignment_expression "iVar12 = iVar7 + 1" (identifier "iVar12") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (puVar15 == (undefined4 *)0x0) {\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }\n      else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" (if "if") (parenthesized_expression "(puVar15 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar15 == (undefined4 *)0x0" (identifier "puVar15") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;\n      }" ({ "{") (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar3 = param_2 + puVar9[iVar10 + 5] + 1;" (assignment_expression "iVar3 = param_2 + puVar9[iVar10 + 5] + 1" (identifier "iVar3") (= "=") (binary_expression "param_2 + puVar9[iVar10 + 5] + 1" (binary_expression "param_2 + puVar9[iVar10 + 5]" (identifier "param_2") (+ "+") (subscript_expression "puVar9[iVar10 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 5" (identifier "iVar10") (+ "+") (number_literal "5")) (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else {\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" (else "else") (compound_statement "{\n        if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }\n        iVar10 = iVar7 + -1;\n        puVar13 = (undefined4 *)*puVar4;\n        puVar15 = (undefined4 *)puVar4[1];\n        iVar14 = iVar10 * 4;\n        iVar3 = param_2 + puVar4[4] + 1;\n      }" ({ "{") (if_statement "if (puVar15[10] != 0) {\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" (if "if") (parenthesized_expression "(puVar15[10] != 0)" (( "(") (binary_expression "puVar15[10] != 0" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;\n          uVar11 = puVar15[5];\n          puVar13 = (undefined4 *)puVar15[1];\n          uVar6 = *(undefined4 *)(iVar3 + 0x24);\n          puVar5[3] = puVar13;\n          puVar5[7] = uVar11;\n          puVar5[10] = uVar6;\n          if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }\n          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];\n          puVar15[1] = puVar15[2];\n          puVar15[5] = puVar15[6];\n          if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }\n          puVar15[iVar7 + 1] = 0;\n          puVar15[iVar7 + 5] = 0;\n          puVar15[iVar10 + 9] = 0;\n          uVar6 = FUN_0007d8c0(puVar5);\n          *(undefined4 *)(iVar3 + 0x14) = uVar6;\n          uVar6 = FUN_0007d8c0(puVar15);\n          puVar9[iVar12 + 5] = uVar6;\n          goto joined_r0x0007e0e8;\n        }" ({ "{") (labeled_statement "LAB_0007e5d0:\n          iVar3 = (int)puVar9 + iVar3;" (statement_identifier "LAB_0007e5d0") (: ":") (expression_statement "iVar3 = (int)puVar9 + iVar3;" (assignment_expression "iVar3 = (int)puVar9 + iVar3" (identifier "iVar3") (= "=") (binary_expression "(int)puVar9 + iVar3" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar3"))) (; ";"))) (expression_statement "uVar11 = puVar15[5];" (assignment_expression "uVar11 = puVar15[5]" (identifier "uVar11") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)puVar15[1];" (assignment_expression "puVar13 = (undefined4 *)puVar15[1]" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)puVar15[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(iVar3 + 0x24);" (assignment_expression "uVar6 = *(undefined4 *)(iVar3 + 0x24)" (identifier "uVar6") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar5[3] = puVar13;" (assignment_expression "puVar5[3] = puVar13" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar13")) (; ";")) (expression_statement "puVar5[7] = uVar11;" (assignment_expression "puVar5[7] = uVar11" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar5[10] = uVar6;" (assignment_expression "puVar5[10] = uVar6" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (puVar13 != (undefined4 *)0x0) {\n            *puVar13 = puVar5;\n          }" (if "if") (parenthesized_expression "(puVar13 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar13 != (undefined4 *)0x0" (identifier "puVar13") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *puVar13 = puVar5;\n          }" ({ "{") (expression_statement "*puVar13 = puVar5;" (assignment_expression "*puVar13 = puVar5" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar3 + 0x24) = puVar15[9];" (assignment_expression "*(undefined4 *)(iVar3 + 0x24) = puVar15[9]" (pointer_expression "*(undefined4 *)(iVar3 + 0x24)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x24)" (( "(") (binary_expression "iVar3 + 0x24" (identifier "iVar3") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar15[1] = puVar15[2];" (assignment_expression "puVar15[1] = puVar15[2]" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar15[5] = puVar15[6];" (assignment_expression "puVar15[5] = puVar15[6]" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (puVar15[10] == 0) {\n            iVar7 = 1;\n            iVar10 = 0;\n          }\n          else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" (if "if") (parenthesized_expression "(puVar15[10] == 0)" (( "(") (binary_expression "puVar15[10] == 0" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar7 = 1;\n            iVar10 = 0;\n          }" ({ "{") (expression_statement "iVar7 = 1;" (assignment_expression "iVar7 = 1" (identifier "iVar7") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" (else "else") (compound_statement "{\n            puVar15[2] = puVar15[3];\n            puVar15[6] = puVar15[7];\n            puVar15[9] = puVar15[10];\n            if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }\n          }" ({ "{") (expression_statement "puVar15[2] = puVar15[3];" (assignment_expression "puVar15[2] = puVar15[3]" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar15[6] = puVar15[7];" (assignment_expression "puVar15[6] = puVar15[7]" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "puVar15[9] = puVar15[10];" (assignment_expression "puVar15[9] = puVar15[10]" (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]"))) (; ";")) (if_statement "if (puVar15[0xb] == 0) {\n              iVar7 = 2;\n              iVar10 = 1;\n            }\n            else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" (if "if") (parenthesized_expression "(puVar15[0xb] == 0)" (( "(") (binary_expression "puVar15[0xb] == 0" (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar7 = 2;\n              iVar10 = 1;\n            }" ({ "{") (expression_statement "iVar7 = 2;" (assignment_expression "iVar7 = 2" (identifier "iVar7") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar10 = 1;" (assignment_expression "iVar10 = 1" (identifier "iVar10") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" (else "else") (compound_statement "{\n              iVar7 = 3;\n              iVar10 = 2;\n              puVar15[10] = puVar15[0xb];\n              puVar15[3] = puVar15[4];\n              puVar15[7] = puVar15[8];\n            }" ({ "{") (expression_statement "iVar7 = 3;" (assignment_expression "iVar7 = 3" (identifier "iVar7") (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar15[10] = puVar15[0xb];" (assignment_expression "puVar15[10] = puVar15[0xb]" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "puVar15[3] = puVar15[4];" (assignment_expression "puVar15[3] = puVar15[4]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "puVar15[7] = puVar15[8];" (assignment_expression "puVar15[7] = puVar15[8]" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "puVar15[iVar7 + 1] = 0;" (assignment_expression "puVar15[iVar7 + 1] = 0" (subscript_expression "puVar15[iVar7 + 1]" (identifier "puVar15") ([ "[") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[iVar7 + 5] = 0;" (assignment_expression "puVar15[iVar7 + 5] = 0" (subscript_expression "puVar15[iVar7 + 5]" (identifier "puVar15") ([ "[") (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15[iVar10 + 9] = 0;" (assignment_expression "puVar15[iVar10 + 9] = 0" (subscript_expression "puVar15[iVar10 + 9]" (identifier "puVar15") ([ "[") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" (identifier "uVar6") (= "=") (call_expression "FUN_0007d8c0(puVar5)" (identifier "FUN_0007d8c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar3 + 0x14) = uVar6;" (assignment_expression "*(undefined4 *)(iVar3 + 0x14) = uVar6" (pointer_expression "*(undefined4 *)(iVar3 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x14)" (( "(") (binary_expression "iVar3 + 0x14" (identifier "iVar3") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" (identifier "uVar6") (= "=") (call_expression "FUN_0007d8c0(puVar15)" (identifier "FUN_0007d8c0") (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "puVar9[iVar12 + 5] = uVar6;" (assignment_expression "puVar9[iVar12 + 5] = uVar6" (subscript_expression "puVar9[iVar12 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar12 + 5" (identifier "iVar12") (+ "+") (number_literal "5")) (] "]")) (= "=") (identifier "uVar6")) (; ";")) (goto_statement "goto joined_r0x0007e0e8;" (goto "goto") (statement_identifier "joined_r0x0007e0e8") (; ";")) (} "}"))) (expression_statement "iVar10 = iVar7 + -1;" (assignment_expression "iVar10 = iVar7 + -1" (identifier "iVar10") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar13 = (undefined4 *)*puVar4;" (assignment_expression "puVar13 = (undefined4 *)*puVar4" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)*puVar4" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")))) (; ";")) (expression_statement "puVar15 = (undefined4 *)puVar4[1];" (assignment_expression "puVar15 = (undefined4 *)puVar4[1]" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)puVar4[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar14 = iVar10 * 4;" (assignment_expression "iVar14 = iVar10 * 4" (identifier "iVar14") (= "=") (binary_expression "iVar10 * 4" (identifier "iVar10") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar3 = param_2 + puVar4[4] + 1;" (assignment_expression "iVar3 = param_2 + puVar4[4] + 1" (identifier "iVar3") (= "=") (binary_expression "param_2 + puVar4[4] + 1" (binary_expression "param_2 + puVar4[4]" (identifier "param_2") (+ "+") (subscript_expression "puVar4[4]" (identifier "puVar4") ([ "[") (number_literal "4") (] "]"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (labeled_statement "LAB_0007e740:\n      puVar15[4] = puVar15[2];" (statement_identifier "LAB_0007e740") (: ":") (expression_statement "puVar15[4] = puVar15[2];" (assignment_expression "puVar15[4] = puVar15[2]" (subscript_expression "puVar15[4]" (identifier "puVar15") ([ "[") (number_literal "4") (] "]")) (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "puVar15[8] = puVar15[6];" (assignment_expression "puVar15[8] = puVar15[6]" (subscript_expression "puVar15[8]" (identifier "puVar15") ([ "[") (number_literal "8") (] "]")) (= "=") (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar15[3] = puVar15[1];" (assignment_expression "puVar15[3] = puVar15[1]" (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar15[0xb] = puVar15[9];" (assignment_expression "puVar15[0xb] = puVar15[9]" (subscript_expression "puVar15[0xb]" (identifier "puVar15") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar15[7] = puVar15[5];" (assignment_expression "puVar15[7] = puVar15[5]" (subscript_expression "puVar15[7]" (identifier "puVar15") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar6 = puVar13[6];" (assignment_expression "uVar6 = puVar13[6]" (identifier "uVar6") (= "=") (subscript_expression "puVar13[6]" (identifier "puVar13") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)puVar13[2];" (assignment_expression "puVar5 = (undefined4 *)puVar13[2]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar13[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "puVar15[10] = puVar9[iVar10 + 9];" (assignment_expression "puVar15[10] = puVar9[iVar10 + 9]" (subscript_expression "puVar15[10]" (identifier "puVar15") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "puVar9[iVar10 + 9]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) (] "]"))) (; ";")) (expression_statement "puVar15[6] = uVar6;" (assignment_expression "puVar15[6] = uVar6" (subscript_expression "puVar15[6]" (identifier "puVar15") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "puVar15[2] = puVar5;" (assignment_expression "puVar15[2] = puVar5" (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *puVar5 = puVar15;\n      }" ({ "{") (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "puVar15")) (; ";")) (} "}"))) (expression_statement "puVar5 = (undefined4 *)puVar13[1];" (assignment_expression "puVar5 = (undefined4 *)puVar13[1]" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)puVar13[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uVar6 = puVar13[5];" (assignment_expression "uVar6 = puVar13[5]" (identifier "uVar6") (= "=") (subscript_expression "puVar13[5]" (identifier "puVar13") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar15[9] = puVar13[9];" (assignment_expression "puVar15[9] = puVar13[9]" (subscript_expression "puVar15[9]" (identifier "puVar15") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar15[1] = puVar5;" (assignment_expression "puVar15[1] = puVar5" (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar15[5] = uVar6;" (assignment_expression "puVar15[5] = uVar6" (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar6")) (; ";")) (if_statement "if (puVar5 != (undefined4 *)0x0) {\n        *puVar5 = puVar15;\n      }" (if "if") (parenthesized_expression "(puVar5 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 != (undefined4 *)0x0" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *puVar5 = puVar15;\n      }" ({ "{") (expression_statement "*puVar5 = puVar15;" (assignment_expression "*puVar5 = puVar15" (pointer_expression "*puVar5" (* "*") (identifier "puVar5")) (= "=") (identifier "puVar15")) (; ";")) (} "}"))) (expression_statement "uVar6 = FUN_0007d8c0(puVar15);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar15)" (identifier "uVar6") (= "=") (call_expression "FUN_0007d8c0(puVar15)" (identifier "FUN_0007d8c0") (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")")))) (; ";")) (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" (identifier "puVar2") (= "=") (identifier "PTR_safefree_000b23d0")) (; ";")) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "(*(code *)puVar2)(puVar13);" (call_expression "(*(code *)puVar2)(puVar13)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "iVar7 = ((int *)((int)puVar9 + iVar14))[2];" (assignment_expression "iVar7 = ((int *)((int)puVar9 + iVar14))[2]" (identifier "iVar7") (= "=") (subscript_expression "((int *)((int)puVar9 + iVar14))[2]" (parenthesized_expression "((int *)((int)puVar9 + iVar14))" (( "(") (cast_expression "(int *)((int)puVar9 + iVar14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14)" (( "(") (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) () ")"))) () ")")) ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar1 = (int *)((int)puVar9 + iVar14);" (assignment_expression "piVar1 = (int *)((int)puVar9 + iVar14)" (identifier "piVar1") (= "=") (cast_expression "(int *)((int)puVar9 + iVar14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14)" (( "(") (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) () ")")))) (; ";")) (while_statement "while (iVar7 != 0) {\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar10 = iVar10 + 1;\n        piVar1[1] = iVar7;\n        piVar1[5] = piVar1[6];\n        if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }\n        piVar1[9] = piVar1[10];\n        iVar7 = piVar1[3];\n        piVar1 = piVar1 + 1;\n      }" ({ "{") (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar1[1] = iVar7;" (assignment_expression "piVar1[1] = iVar7" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar1[5] = piVar1[6];" (assignment_expression "piVar1[5] = piVar1[6]" (subscript_expression "piVar1[5]" (identifier "piVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if (iVar10 == 3) {\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" (if "if") (parenthesized_expression "(iVar10 == 3)" (( "(") (binary_expression "iVar10 == 3" (identifier "iVar10") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          puVar9[0xb] = 0;\n          puVar9[4] = 0;\n          puVar9[8] = 0;\n          goto LAB_0007e838;\n        }" ({ "{") (expression_statement "puVar9[0xb] = 0;" (assignment_expression "puVar9[0xb] = 0" (subscript_expression "puVar9[0xb]" (identifier "puVar9") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[4] = 0;" (assignment_expression "puVar9[4] = 0" (subscript_expression "puVar9[4]" (identifier "puVar9") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[8] = 0;" (assignment_expression "puVar9[8] = 0" (subscript_expression "puVar9[8]" (identifier "puVar9") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0007e838;" (goto "goto") (statement_identifier "LAB_0007e838") (; ";")) (} "}"))) (expression_statement "piVar1[9] = piVar1[10];" (assignment_expression "piVar1[9] = piVar1[10]" (subscript_expression "piVar1[9]" (identifier "piVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (subscript_expression "piVar1[10]" (identifier "piVar1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar1[3];" (assignment_expression "iVar7 = piVar1[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar1[3]" (identifier "piVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar1 = piVar1 + 1;" (assignment_expression "piVar1 = piVar1 + 1" (identifier "piVar1") (= "=") (binary_expression "piVar1 + 1" (identifier "piVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "puVar9[iVar10 + 1] = 0;" (assignment_expression "puVar9[iVar10 + 1] = 0" (subscript_expression "puVar9[iVar10 + 1]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[iVar10 + 5] = 0;" (assignment_expression "puVar9[iVar10 + 5] = 0" (subscript_expression "puVar9[iVar10 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 5" (identifier "iVar10") (+ "+") (number_literal "5")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar9[iVar10 + 9] = 0;" (assignment_expression "puVar9[iVar10 + 9] = 0" (subscript_expression "puVar9[iVar10 + 9]" (identifier "puVar9") ([ "[") (binary_expression "iVar10 + 9" (identifier "iVar10") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0007e838:\n      puVar2 = PTR_safefree_000b23d0;" (statement_identifier "LAB_0007e838") (: ":") (expression_statement "puVar2 = PTR_safefree_000b23d0;" (assignment_expression "puVar2 = PTR_safefree_000b23d0" (identifier "puVar2") (= "=") (identifier "PTR_safefree_000b23d0")) (; ";"))) (expression_statement "puVar5 = puVar15;" (assignment_expression "puVar5 = puVar15" (identifier "puVar5") (= "=") (identifier "puVar15")) (; ";")) (expression_statement "param_2 = iVar3;" (assignment_expression "param_2 = iVar3" (identifier "param_2") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (puVar9[9] == 0) {\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" (if "if") (parenthesized_expression "(puVar9[9] == 0)" (( "(") (binary_expression "puVar9[9] == 0" (subscript_expression "puVar9[9]" (identifier "puVar9") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *param_1 = puVar15;\n        *puVar15 = 0;\n        (*(code *)puVar2)(puVar9);\n      }" ({ "{") (expression_statement "*param_1 = puVar15;" (assignment_expression "*param_1 = puVar15" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "puVar15")) (; ";")) (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)puVar2)(puVar9);" (call_expression "(*(code *)puVar2)(puVar9)" (parenthesized_expression "(*(code *)puVar2)" (( "(") (pointer_expression "*(code *)puVar2" (* "*") (cast_expression "(code *)puVar2" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2"))) () ")")) (argument_list "(puVar9)" (( "(") (identifier "puVar9") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" (else "else") (compound_statement "{\nLAB_0007e3f0:\n      iVar10 = puVar13[0xb];\n      iVar3 = 3;\n      iVar12 = 1;\n      if (iVar10 == 0) {\n        iVar3 = 2;\n      }\n      puVar5[3] = puVar5[2];\n      puVar5[7] = puVar5[6];\n      puVar5[10] = puVar5[9];\n      puVar5[2] = puVar5[1];\n      puVar5[6] = puVar5[5];\n      if (iVar10 != 0) {\n        iVar12 = 2;\n      }\n      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);\n      puVar4 = (undefined4 *)puVar13[iVar3 + 1];\n      puVar5[1] = puVar4;\n      puVar5[5] = puVar13[iVar3 + 5];\n      if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }\n      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];\n      puVar13[iVar3 + 1] = 0;\n      puVar13[iVar3 + 5] = 0;\n      puVar13[iVar12 + 9] = 0;\n      uVar6 = FUN_0007d8c0(puVar5);\n      puVar9[iVar7 + 5] = uVar6;\n      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);\n      iVar3 = FUN_0007d8c0(puVar13);\n      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;\n      param_2 = (param_2 + iVar10) - iVar3;\n    }" ({ "{") (labeled_statement "LAB_0007e3f0:\n      iVar10 = puVar13[0xb];" (statement_identifier "LAB_0007e3f0") (: ":") (expression_statement "iVar10 = puVar13[0xb];" (assignment_expression "iVar10 = puVar13[0xb]" (identifier "iVar10") (= "=") (subscript_expression "puVar13[0xb]" (identifier "puVar13") ([ "[") (number_literal "0xb") (] "]"))) (; ";"))) (expression_statement "iVar3 = 3;" (assignment_expression "iVar3 = 3" (identifier "iVar3") (= "=") (number_literal "3")) (; ";")) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (if_statement "if (iVar10 == 0) {\n        iVar3 = 2;\n      }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar3 = 2;\n      }" ({ "{") (expression_statement "iVar3 = 2;" (assignment_expression "iVar3 = 2" (identifier "iVar3") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "puVar5[3] = puVar5[2];" (assignment_expression "puVar5[3] = puVar5[2]" (subscript_expression "puVar5[3]" (identifier "puVar5") ([ "[") (number_literal "3") (] "]")) (= "=") (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar5[7] = puVar5[6];" (assignment_expression "puVar5[7] = puVar5[6]" (subscript_expression "puVar5[7]" (identifier "puVar5") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "puVar5[10] = puVar5[9];" (assignment_expression "puVar5[10] = puVar5[9]" (subscript_expression "puVar5[10]" (identifier "puVar5") ([ "[") (number_literal "10") (] "]")) (= "=") (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "puVar5[2] = puVar5[1];" (assignment_expression "puVar5[2] = puVar5[1]" (subscript_expression "puVar5[2]" (identifier "puVar5") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar5[6] = puVar5[5];" (assignment_expression "puVar5[6] = puVar5[5]" (subscript_expression "puVar5[6]" (identifier "puVar5") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (iVar10 != 0) {\n        iVar12 = 2;\n      }" (if "if") (parenthesized_expression "(iVar10 != 0)" (( "(") (binary_expression "iVar10 != 0" (identifier "iVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar12 = 2;\n      }" ({ "{") (expression_statement "iVar12 = 2;" (assignment_expression "iVar12 = 2" (identifier "iVar12") (= "=") (number_literal "2")) (; ";")) (} "}"))) (expression_statement "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);" (assignment_expression "puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (subscript_expression "puVar5[9]" (identifier "puVar5") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" (( "(") (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "0x24")) () ")"))))) (; ";")) (expression_statement "puVar4 = (undefined4 *)puVar13[iVar3 + 1];" (assignment_expression "puVar4 = (undefined4 *)puVar13[iVar3 + 1]" (identifier "puVar4") (= "=") (cast_expression "(undefined4 *)puVar13[iVar3 + 1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar13[iVar3 + 1]" (identifier "puVar13") ([ "[") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) (] "]")))) (; ";")) (expression_statement "puVar5[1] = puVar4;" (assignment_expression "puVar5[1] = puVar4" (subscript_expression "puVar5[1]" (identifier "puVar5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar5[5] = puVar13[iVar3 + 5];" (assignment_expression "puVar5[5] = puVar13[iVar3 + 5]" (subscript_expression "puVar5[5]" (identifier "puVar5") ([ "[") (number_literal "5") (] "]")) (= "=") (subscript_expression "puVar13[iVar3 + 5]" (identifier "puVar13") ([ "[") (binary_expression "iVar3 + 5" (identifier "iVar3") (+ "+") (number_literal "5")) (] "]"))) (; ";")) (if_statement "if (puVar4 != (undefined4 *)0x0) {\n        *puVar4 = puVar5;\n      }" (if "if") (parenthesized_expression "(puVar4 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar4 != (undefined4 *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *puVar4 = puVar5;\n      }" ({ "{") (expression_statement "*puVar4 = puVar5;" (assignment_expression "*puVar4 = puVar5" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (identifier "puVar5")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];" (assignment_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9]" (pointer_expression "*(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (* "*") (cast_expression "(undefined4 *)((int)puVar9 + iVar14 + 0x24)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14 + 0x24)" (( "(") (binary_expression "(int)puVar9 + iVar14 + 0x24" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "puVar13[iVar12 + 9]" (identifier "puVar13") ([ "[") (binary_expression "iVar12 + 9" (identifier "iVar12") (+ "+") (number_literal "9")) (] "]"))) (; ";")) (expression_statement "puVar13[iVar3 + 1] = 0;" (assignment_expression "puVar13[iVar3 + 1] = 0" (subscript_expression "puVar13[iVar3 + 1]" (identifier "puVar13") ([ "[") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[iVar3 + 5] = 0;" (assignment_expression "puVar13[iVar3 + 5] = 0" (subscript_expression "puVar13[iVar3 + 5]" (identifier "puVar13") ([ "[") (binary_expression "iVar3 + 5" (identifier "iVar3") (+ "+") (number_literal "5")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar13[iVar12 + 9] = 0;" (assignment_expression "puVar13[iVar12 + 9] = 0" (subscript_expression "puVar13[iVar12 + 9]" (identifier "puVar13") ([ "[") (binary_expression "iVar12 + 9" (identifier "iVar12") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = FUN_0007d8c0(puVar5);" (assignment_expression "uVar6 = FUN_0007d8c0(puVar5)" (identifier "uVar6") (= "=") (call_expression "FUN_0007d8c0(puVar5)" (identifier "FUN_0007d8c0") (argument_list "(puVar5)" (( "(") (identifier "puVar5") () ")")))) (; ";")) (expression_statement "puVar9[iVar7 + 5] = uVar6;" (assignment_expression "puVar9[iVar7 + 5] = uVar6" (subscript_expression "puVar9[iVar7 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (] "]")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);" (assignment_expression "iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" (* "*") (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" (( "(") (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar3 = FUN_0007d8c0(puVar13);" (assignment_expression "iVar3 = FUN_0007d8c0(puVar13)" (identifier "iVar3") (= "=") (call_expression "FUN_0007d8c0(puVar13)" (identifier "FUN_0007d8c0") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;" (assignment_expression "*(int *)((int)puVar9 + iVar14 + 0x14) = iVar3" (pointer_expression "*(int *)((int)puVar9 + iVar14 + 0x14)" (* "*") (cast_expression "(int *)((int)puVar9 + iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar9 + iVar14 + 0x14)" (( "(") (binary_expression "(int)puVar9 + iVar14 + 0x14" (binary_expression "(int)puVar9 + iVar14" (cast_expression "(int)puVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar9")) (+ "+") (identifier "iVar14")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "param_2 = (param_2 + iVar10) - iVar3;" (assignment_expression "param_2 = (param_2 + iVar10) - iVar3" (identifier "param_2") (= "=") (binary_expression "(param_2 + iVar10) - iVar3" (parenthesized_expression "(param_2 + iVar10)" (( "(") (binary_expression "param_2 + iVar10" (identifier "param_2") (+ "+") (identifier "iVar10")) () ")")) (- "-") (identifier "iVar3"))) (; ";")) (} "}")))) (} "}"))) (goto_statement "goto joined_r0x0007e0e8;" (goto "goto") (statement_identifier "joined_r0x0007e0e8") (; ";")) (while_statement "while( true ) {\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    iVar3 = puVar13[0xb];\n    iVar10 = 2;\n    puVar13 = puVar13 + 1;\n    if (iVar3 == 0) break;\nLAB_0007e2bc:\n    puVar13[9] = iVar3;\n    if (iVar10 == 2) goto LAB_0007e2c8;\n  }" ({ "{") (expression_statement "iVar3 = puVar13[0xb];" (assignment_expression "iVar3 = puVar13[0xb]" (identifier "iVar3") (= "=") (subscript_expression "puVar13[0xb]" (identifier "puVar13") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar13 = puVar13 + 1;" (assignment_expression "puVar13 = puVar13 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + 1" (identifier "puVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar3 == 0) break;" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_0007e2bc:\n    puVar13[9] = iVar3;" (statement_identifier "LAB_0007e2bc") (: ":") (expression_statement "puVar13[9] = iVar3;" (assignment_expression "puVar13[9] = iVar3" (subscript_expression "puVar13[9]" (identifier "puVar13") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar3")) (; ";"))) (if_statement "if (iVar10 == 2) goto LAB_0007e2c8;" (if "if") (parenthesized_expression "(iVar10 == 2)" (( "(") (binary_expression "iVar10 == 2" (identifier "iVar10") (== "==") (number_literal "2")) () ")")) (goto_statement "goto LAB_0007e2c8;" (goto "goto") (statement_identifier "LAB_0007e2c8") (; ";"))) (} "}"))) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0007e2cc:\n  puVar9[iVar16 + 9] = 0;" (statement_identifier "LAB_0007e2cc") (: ":") (expression_statement "puVar9[iVar16 + 9] = 0;" (assignment_expression "puVar9[iVar16 + 9] = 0" (subscript_expression "puVar9[iVar16 + 9]" (identifier "puVar9") ([ "[") (binary_expression "iVar16 + 9" (identifier "iVar16") (+ "+") (number_literal "9")) (] "]")) (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  } while( true );" (do "do") (compound_statement "{\n    puVar13 = puVar9;\n    if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }\n    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }\n    puVar9[5] = puVar9[5] + -1;\n    puVar5 = (undefined4 *)*puVar9;\n  }" ({ "{") (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" (identifier "puVar13") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if (puVar5 == (undefined4 *)0x0) {\n      return iVar17;\n    }" (if "if") (parenthesized_expression "(puVar5 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar5 == (undefined4 *)0x0" (identifier "puVar5") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return iVar17;\n    }" ({ "{") (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (while_statement "while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" (while "while") (parenthesized_expression "(puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13)" (( "(") (comma_expression "puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13" (assignment_expression "puVar9 = puVar5" (identifier "puVar9") (= "=") (identifier "puVar5")) (, ",") (binary_expression "(undefined4 *)puVar9[1] != puVar13" (cast_expression "(undefined4 *)puVar9[1]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[1]" (identifier "puVar9") ([ "[") (number_literal "1") (] "]"))) (!= "!=") (identifier "puVar13"))) () ")")) (compound_statement "{\n      iVar16 = 3;\n      if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }\n      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;\n      puVar5 = (undefined4 *)*puVar9;\n      puVar13 = puVar9;\n      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }\n    }" ({ "{") (expression_statement "iVar16 = 3;" (assignment_expression "iVar16 = 3" (identifier "iVar16") (= "=") (number_literal "3")) (; ";")) (if_statement "if ((undefined4 *)puVar9[2] == puVar13) {\n        iVar16 = 1;\n      }\n      else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[2] == puVar13)" (( "(") (binary_expression "(undefined4 *)puVar9[2] == puVar13" (cast_expression "(undefined4 *)puVar9[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[2]" (identifier "puVar9") ([ "[") (number_literal "2") (] "]"))) (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n        iVar16 = 1;\n      }" ({ "{") (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" (identifier "iVar16") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" (else "else") (if_statement "if ((undefined4 *)puVar9[3] == puVar13) {\n        iVar16 = 2;\n      }" (if "if") (parenthesized_expression "((undefined4 *)puVar9[3] == puVar13)" (( "(") (binary_expression "(undefined4 *)puVar9[3] == puVar13" (cast_expression "(undefined4 *)puVar9[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar9[3]" (identifier "puVar9") ([ "[") (number_literal "3") (] "]"))) (== "==") (identifier "puVar13")) () ")")) (compound_statement "{\n        iVar16 = 2;\n      }" ({ "{") (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";")) (} "}"))))) (expression_statement "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;" (assignment_expression "puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar16 + 5" (identifier "iVar16") (+ "+") (number_literal "5")) (] "]")) (= "=") (binary_expression "puVar9[iVar16 + 5] + -1" (subscript_expression "puVar9[iVar16 + 5]" (identifier "puVar9") ([ "[") (binary_expression "iVar16 + 5" (identifier "iVar16") (+ "+") (number_literal "5")) (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (expression_statement "puVar13 = puVar9;" (assignment_expression "puVar13 = puVar9" (identifier "puVar13") (= "=") (identifier "puVar9")) (; ";")) (if_statement "if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {\n        return iVar17;\n      }" (if "if") (parenthesized_expression "((undefined4 *)*puVar9 == (undefined4 *)0x0)" (( "(") (binary_expression "(undefined4 *)*puVar9 == (undefined4 *)0x0" (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9"))) (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return iVar17;\n      }" ({ "{") (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (} "}"))) (expression_statement "puVar9[5] = puVar9[5] + -1;" (assignment_expression "puVar9[5] = puVar9[5] + -1" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "puVar9[5] + -1" (subscript_expression "puVar9[5]" (identifier "puVar9") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar5 = (undefined4 *)*puVar9;" (assignment_expression "puVar5 = (undefined4 *)*puVar9" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)*puVar9" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar9" (* "*") (identifier "puVar9")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (labeled_statement "LAB_0007e2c8:\n  iVar16 = 2;" (statement_identifier "LAB_0007e2c8") (: ":") (expression_statement "iVar16 = 2;" (assignment_expression "iVar16 = 2" (identifier "iVar16") (= "=") (number_literal "2")) (; ";"))) (goto_statement "goto LAB_0007e2cc;" (goto "goto") (statement_identifier "LAB_0007e2cc") (; ";")) (} "}")))

void * function_1(type_1 *t,int var_6)

{
  type_2 **ppnVar1;
  type_3 *puVar2;
  type_2 *var_12;
  type_4 *var_19;
  type_4 *var_1;
  type_2 **var_11;
  int *var_18;
  type_4 *var_7;
  int var_13;
  type_2 *var_16;
  void *var_15;
  void *var_9;
  int iVar13;
  int iVar14;
  type_2 *var_8;
  int var_14;
  int var_17;
  type_2 *var_5;
  int var_4;
  int var_3;
  void *var_2;
  
  var_2 = (void *)0x0;
  var_3 = -1;
  var_7 = t->root;
joined_r0x0007e0e8:
  do {
    while( true ) {
      while( true ) {
        var_4 = var_6;
        var_1 = var_7;
        if (var_1 == (type_4 *)0x0) {
          if (var_2 == (void *)0x0) {
            var_2 = *(void **)(var_3 * 4 + 0x24);
          }
          if (var_3 == -1) {
            return (void *)0x0;
          }
          goto LAB_0007e130;
        }
        if (var_1->counts[0] <= var_4) break;
        var_8 = var_1->kids[0];
        var_7 = var_8;
        var_6 = var_4;
        if (var_8->elems[1] == (void *)0x0) {
          var_5 = var_1->kids[1];
          var_14 = 1;
          if ((var_5 == (type_2 *)0x0) || (iVar13 = 1, var_5->elems[1] == (void *)0x0)) {
            var_13 = 0;
            var_17 = 0;
            goto LAB_0007e740;
          }
          var_4 = 0;
          goto LAB_0007e5d0;
        }
      }
      var_6 = var_4 - (var_1->counts[0] + 1);
      if (var_6 < 0) break;
      if (var_6 < var_1->counts[1]) goto LAB_0007e3bc;
      var_4 = var_6 - (var_1->counts[1] + 1);
      if (var_4 < 0) {
        if (var_2 == (void *)0x0) {
          var_2 = var_1->elems[1];
          var_3 = 1;
        }
        else {
          var_3 = 1;
        }
LAB_0007e130:
        var_7 = var_1->parent;
        var_8 = var_1->kids[0];
        goto joined_r0x0007e264;
      }
      if (var_4 < var_1->counts[2]) {
        var_7 = var_1->kids[2];
        var_13 = 1;
        var_6 = var_4;
        if (var_7->elems[1] == (void *)0x0) {
          var_14 = 2;
          goto LAB_0007e3d8;
        }
      }
      else {
        var_6 = var_4 - (var_1->counts[2] + 1);
        if (var_6 < 0) {
          if (var_2 == (void *)0x0) {
            var_2 = var_1->elems[2];
            var_3 = 2;
          }
          else {
            var_3 = 2;
          }
          goto LAB_0007e130;
        }
        var_5 = var_1->kids[3];
        var_7 = var_5;
        if (var_5->elems[1] == (void *)0x0) {
          var_8 = var_1->kids[2];
          if (var_8->elems[1] == (void *)0x0) {
            var_13 = 2;
            var_14 = 3;
            var_17 = 8;
            goto LAB_0007e740;
          }
          var_14 = 3;
          var_17 = 8;
          goto LAB_0007e3f0;
        }
      }
    }
    if (var_2 == (void *)0x0) {
      var_2 = var_1->elems[0];
    }
    var_3 = 0;
    var_7 = var_1->parent;
    var_8 = var_1->kids[0];
joined_r0x0007e264:
    if (var_7 == (type_4 *)0x0) {
      if (var_1->elems[1] == (void *)0x0) {
        if (var_8 == (type_2 *)0x0) {
          (*(type_5 *)PTR_safefree_000b23d0)(var_1);
          t->root = (type_4 *)0x0;
          return var_2;
        }
      }
      else if (var_8 == (type_2 *)0x0) {
        var_7 = (type_4 *)0x0;
        goto LAB_0007e284;
      }
    }
    else if ((var_8 == (type_2 *)0x0) && (var_1->elems[1] != (void *)0x0)) {
LAB_0007e284:
      if (var_3 == 2) goto LAB_0007e2c8;
      var_9 = var_1->elems[var_3 + 1];
      var_4 = var_3 + 1;
      if (var_9 == (void *)0x0) goto LAB_0007e2cc;
      var_11 = var_1->kids + var_3 + -1;
      goto LAB_0007e2bc;
    }
    var_11 = var_1->kids + var_3 + -1;
    var_7 = var_11[1];
    var_4 = var_3 + 1;
    var_19 = var_7;
    if (var_7->elems[1] == (void *)0x0) {
      var_16 = var_11[2];
      var_8 = var_16->kids[0];
      var_5 = var_16;
      if (var_16->elems[1] == (void *)0x0) {
        var_9 = var_11[9];
        var_13 = var_16->counts[0];
        var_7->kids[2] = var_8;
        var_7->elems[1] = var_9;
        var_7->counts[2] = var_13;
        if (var_8 != (type_2 *)0x0) {
          var_8->parent = var_7;
        }
        var_8 = var_16->kids[1];
        var_13 = var_16->counts[1];
        var_7->elems[2] = var_16->elems[0];
        var_7->kids[3] = var_8;
        var_7->counts[3] = var_13;
        if (var_8 != (type_2 *)0x0) {
          var_8->parent = var_7;
        }
        (*(type_5 *)PTR_safefree_000b23d0)();
        var_13 = var_10(var_7);
        var_11[5] = (type_2 *)var_13;
        if (var_3 == 2) {
LAB_0007e554:
          var_4 = 3;
          var_13 = 2;
LAB_0007e55c:
          var_1->elems[var_13] = (void *)0x0;
          var_1->kids[var_4] = (type_2 *)0x0;
          var_1->counts[var_4] = 0;
          var_9 = var_1->elems[0];
        }
        else {
          var_9 = var_11[10];
          var_13 = var_3;
          if (var_9 == (void *)0x0) goto LAB_0007e55c;
          do {
            var_11[9] = (type_2 *)var_9;
            var_11[2] = var_11[3];
            var_11[6] = var_11[7];
            if (var_4 == 2) goto LAB_0007e554;
            var_9 = var_11[0xb];
            var_4 = 2;
            var_11 = var_11 + 1;
          } while (var_9 != (void *)0x0);
          var_1->elems[1] = (void *)0x0;
          var_1->kids[2] = (type_2 *)0x0;
          var_1->counts[2] = 0;
          var_9 = var_1->elems[0];
        }
        puVar2 = PTR_safefree_000b23d0;
        if (var_9 == (void *)0x0) {
          t->root = var_7;
          var_7->parent = (type_4 *)0x0;
          (*(type_5 *)puVar2)(var_1);
        }
        var_6 = var_7->counts[0] + var_7->counts[1] + 1;
      }
      else {
        while (var_12 = var_8, var_12 != (type_2 *)0x0) {
          var_5 = var_12;
          var_8 = var_12->kids[0];
        }
        var_11[9] = (type_2 *)var_5->elems[0];
        var_7 = var_16;
        var_6 = 0;
      }
    }
    else {
      while (var_8 = var_19->kids[0], var_8 != (type_2 *)0x0) {
        while ((var_5 = var_19->kids[3], var_19->kids[3] != (type_2 *)0x0 ||
               (var_5 = var_19->kids[2], var_19->kids[2] != (type_2 *)0x0))) {
          var_19 = var_5;
          var_8 = var_19->kids[0];
          if (var_8 == (type_2 *)0x0) goto LAB_0007e21c;
        }
        ppnVar1 = var_19->kids;
        var_19 = ppnVar1[1];
        if (ppnVar1[1] == (type_2 *)0x0) {
          var_19 = var_8;
        }
      }
LAB_0007e21c:
      var_9 = var_19->elems[2];
      if ((var_9 == (void *)0x0) && (var_9 = var_19->elems[1], var_9 == (void *)0x0)) {
        var_9 = var_19->elems[0];
      }
      var_11[9] = (type_2 *)var_9;
      var_6 = (int)var_11[5] + -1;
    }
  } while( true );
LAB_0007e3bc:
  var_7 = var_1->kids[1];
  var_13 = 0;
  if (var_7->elems[1] == (void *)0x0) {
    var_14 = 1;
LAB_0007e3d8:
    var_17 = var_13 * 4;
    var_8 = var_1->kids[var_13];
    var_4 = var_14 * 4;
    if (var_8->elems[1] == (void *)0x0) {
      var_11 = var_1->kids + var_14 + -1;
      var_5 = var_11[2];
      iVar13 = var_14 + 1;
      if (var_5 == (type_2 *)0x0) {
        var_5 = var_11[1];
        var_4 = var_6 + var_1->counts[var_13] + 1;
      }
      else {
        if (var_5->elems[1] != (void *)0x0) {
LAB_0007e5d0:
          var_13 = (int)var_1->kids + var_4 + -4;
          var_4 = var_5->counts[0];
          var_8 = var_5->kids[0];
          var_9 = *(void **)(var_13 + 0x24);
          var_7->kids[2] = var_8;
          var_7->counts[2] = var_4;
          var_7->elems[1] = var_9;
          if (var_8 != (type_2 *)0x0) {
            var_8->parent = var_7;
          }
          *(void **)(var_13 + 0x24) = var_5->elems[0];
          var_9 = var_5->elems[1];
          var_5->kids[0] = var_5->kids[1];
          var_5->counts[0] = var_5->counts[1];
          if (var_9 == (void *)0x0) {
            var_14 = 1;
            var_4 = 0;
          }
          else {
            var_4 = var_5->counts[2];
            var_15 = var_5->elems[2];
            var_5->kids[1] = var_5->kids[2];
            var_5->counts[1] = var_4;
            var_5->elems[0] = var_9;
            if (var_15 == (void *)0x0) {
              var_14 = 2;
              var_4 = 1;
            }
            else {
              var_8 = var_5->kids[3];
              var_14 = 3;
              var_17 = var_5->counts[3];
              var_4 = 2;
              var_5->elems[1] = var_15;
              var_5->kids[2] = var_8;
              var_5->counts[2] = var_17;
            }
          }
          var_5->kids[var_14] = (type_2 *)0x0;
          var_5->counts[var_14] = 0;
          var_5->elems[var_4] = (void *)0x0;
          var_4 = var_10(var_7);
          *(int *)(var_13 + 0x14) = var_4;
          var_4 = var_10(var_5);
          var_1->counts[iVar13] = var_4;
          goto joined_r0x0007e0e8;
        }
        var_13 = var_14 + -1;
        var_8 = *var_11;
        var_5 = var_11[1];
        var_17 = var_13 * 4;
        var_4 = var_6 + (int)var_11[4] + 1;
      }
LAB_0007e740:
      iVar14 = var_5->counts[1];
      var_9 = var_5->elems[0];
      iVar13 = var_5->counts[0];
      var_16 = var_5->kids[0];
      var_5->kids[3] = var_5->kids[1];
      var_5->counts[3] = iVar14;
      var_5->kids[2] = var_16;
      var_5->elems[2] = var_9;
      var_5->counts[2] = iVar13;
      iVar13 = var_8->counts[1];
      var_16 = var_8->kids[1];
      var_5->elems[1] = var_1->elems[var_13];
      var_5->counts[1] = iVar13;
      var_5->kids[1] = var_16;
      if (var_16 != (type_2 *)0x0) {
        var_16->parent = var_5;
      }
      var_16 = var_8->kids[0];
      iVar13 = var_8->counts[0];
      var_5->elems[0] = var_8->elems[0];
      var_5->kids[0] = var_16;
      var_5->counts[0] = iVar13;
      if (var_16 != (type_2 *)0x0) {
        var_16->parent = var_5;
      }
      iVar13 = var_10(var_5);
      puVar2 = PTR_safefree_000b23d0;
      var_1->counts[var_14] = iVar13;
      (*(type_5 *)puVar2)(var_8);
      var_18 = (int *)((int)var_1->kids + var_17 + -4);
      var_14 = var_18[2];
      while (var_14 != 0) {
        var_13 = var_13 + 1;
        var_18[1] = var_14;
        var_18[5] = var_18[6];
        if (var_13 == 3) {
          var_1->elems[2] = (void *)0x0;
          var_1->kids[3] = (type_2 *)0x0;
          var_1->counts[3] = 0;
          goto LAB_0007e838;
        }
        var_18[9] = var_18[10];
        var_14 = var_18[3];
        var_18 = var_18 + 1;
      }
      var_1->kids[var_13] = (type_2 *)0x0;
      var_1->counts[var_13] = 0;
      var_1->elems[var_13] = (void *)0x0;
LAB_0007e838:
      puVar2 = PTR_safefree_000b23d0;
      var_7 = var_5;
      var_6 = var_4;
      if (var_1->elems[0] == (void *)0x0) {
        t->root = var_5;
        var_5->parent = (type_4 *)0x0;
        (*(type_5 *)puVar2)(var_1);
      }
    }
    else {
LAB_0007e3f0:
      var_9 = var_8->elems[2];
      var_4 = 3;
      var_5 = var_7->kids[0];
      var_13 = var_7->counts[0];
      iVar13 = 1;
      if (var_9 == (void *)0x0) {
        var_4 = 2;
      }
      iVar14 = var_7->counts[1];
      var_15 = var_7->elems[0];
      var_7->kids[2] = var_7->kids[1];
      var_7->counts[2] = iVar14;
      var_7->elems[1] = var_15;
      var_7->kids[1] = var_5;
      var_7->counts[1] = var_13;
      if (var_9 != (void *)0x0) {
        iVar13 = 2;
      }
      var_7->elems[0] = *(void **)((int)var_1->elems + var_17);
      var_5 = var_8->kids[var_4];
      var_7->kids[0] = var_5;
      var_7->counts[0] = var_8->counts[var_4];
      if (var_5 != (type_2 *)0x0) {
        var_5->parent = var_7;
      }
      *(void **)((int)var_1->elems + var_17) = var_8->elems[iVar13];
      var_8->kids[var_4] = (type_2 *)0x0;
      var_8->counts[var_4] = 0;
      var_8->elems[iVar13] = (void *)0x0;
      var_4 = var_10(var_7);
      var_1->counts[var_14] = var_4;
      var_13 = *(int *)((int)var_1->counts + var_17);
      var_4 = var_10(var_8);
      *(int *)((int)var_1->counts + var_17) = var_4;
      var_6 = (var_6 + var_13) - var_4;
    }
  }
  goto joined_r0x0007e0e8;
  while( true ) {
    var_9 = var_11[0xb];
    var_4 = 2;
    var_11 = var_11 + 1;
    if (var_9 == (void *)0x0) break;
LAB_0007e2bc:
    var_11[9] = (type_2 *)var_9;
    if (var_4 == 2) goto LAB_0007e2c8;
  }
  var_3 = 1;
LAB_0007e2cc:
  var_1->elems[var_3] = (void *)0x0;
  do {
    var_19 = var_1;
    if (var_7 == (type_4 *)0x0) {
      return var_2;
    }
    while (var_1 = var_7, var_1->kids[0] != var_19) {
      var_3 = 3;
      if (var_1->kids[1] == var_19) {
        var_3 = 1;
      }
      else if (var_1->kids[2] == var_19) {
        var_3 = 2;
      }
      var_1->counts[var_3] = var_1->counts[var_3] + -1;
      var_7 = var_1->parent;
      var_19 = var_1;
      if (var_1->parent == (type_4 *)0x0) {
        return var_2;
      }
    }
    var_1->counts[0] = var_1->counts[0] + -1;
    var_7 = var_1->parent;
  } while( true );
LAB_0007e2c8:
  var_3 = 2;
  goto LAB_0007e2cc;
}


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

int MASKED(undefined4 *param_1,int param_2)

{
  int *piVar1;
  undefined *puVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 uVar6;
  int iVar7;
  undefined4 *puVar8;
  undefined4 *puVar9;
  int iVar10;
  undefined4 uVar11;
  int iVar12;
  undefined4 *puVar13;
  int iVar14;
  undefined4 *puVar15;
  int iVar16;
  int iVar17;
  
  iVar17 = 0;
  iVar16 = -1;
  puVar5 = (undefined4 *)*param_1;
joined_r0x0007e0e8:
  do {
    while( true ) {
      while( true ) {
        iVar3 = param_2;
        puVar9 = puVar5;
        if (puVar9 == (undefined4 *)0x0) {
          if (iVar17 == 0) {
            iVar17 = *(int *)(iVar16 * 4 + 0x24);
          }
          if (iVar16 == -1) {
            return 0;
          }
          goto LAB_0007e130;
        }
        if ((int)puVar9[5] <= iVar3) break;
        puVar13 = (undefined4 *)puVar9[1];
        puVar5 = puVar13;
        param_2 = iVar3;
        if (puVar13[10] == 0) {
          puVar15 = (undefined4 *)puVar9[2];
          iVar7 = 1;
          if ((puVar15 == (undefined4 *)0x0) || (iVar12 = 1, puVar15[10] == 0)) {
            iVar10 = 0;
            iVar14 = 0;
            goto LAB_0007e740;
          }
          iVar3 = 0;
          goto LAB_0007e5d0;
        }
      }
      param_2 = iVar3 - (puVar9[5] + 1);
      if (param_2 < 0) break;
      if (param_2 < (int)puVar9[6]) goto LAB_0007e3bc;
      iVar3 = param_2 - (puVar9[6] + 1);
      if (iVar3 < 0) {
        if (iVar17 == 0) {
          iVar17 = puVar9[10];
          iVar16 = 1;
        }
        else {
          iVar16 = 1;
        }
LAB_0007e130:
        puVar5 = (undefined4 *)*puVar9;
        iVar3 = puVar9[1];
        goto joined_r0x0007e264;
      }
      if (iVar3 < (int)puVar9[7]) {
        puVar5 = (undefined4 *)puVar9[3];
        iVar10 = 1;
        param_2 = iVar3;
        if (puVar5[10] == 0) {
          iVar7 = 2;
          goto LAB_0007e3d8;
        }
      }
      else {
        param_2 = iVar3 - (puVar9[7] + 1);
        if (param_2 < 0) {
          if (iVar17 == 0) {
            iVar17 = puVar9[0xb];
            iVar16 = 2;
          }
          else {
            iVar16 = 2;
          }
          goto LAB_0007e130;
        }
        puVar15 = (undefined4 *)puVar9[4];
        puVar5 = puVar15;
        if (puVar15[10] == 0) {
          puVar13 = (undefined4 *)puVar9[3];
          if (puVar13[10] == 0) {
            iVar10 = 2;
            iVar7 = 3;
            iVar14 = 8;
            goto LAB_0007e740;
          }
          iVar7 = 3;
          iVar14 = 8;
          goto LAB_0007e3f0;
        }
      }
    }
    if (iVar17 == 0) {
      iVar17 = puVar9[9];
    }
    iVar16 = 0;
    puVar5 = (undefined4 *)*puVar9;
    iVar3 = puVar9[1];
joined_r0x0007e264:
    if (puVar5 == (undefined4 *)0x0) {
      if (puVar9[10] == 0) {
        if (iVar3 == 0) {
          (*(code *)PTR_safefree_000b23d0)(puVar9);
          *param_1 = 0;
          return iVar17;
        }
      }
      else if (iVar3 == 0) {
        puVar5 = (undefined4 *)0x0;
        goto LAB_0007e284;
      }
    }
    else if ((iVar3 == 0) && (puVar9[10] != 0)) {
LAB_0007e284:
      if (iVar16 == 2) goto LAB_0007e2c8;
      iVar3 = puVar9[iVar16 + 10];
      iVar10 = iVar16 + 1;
      if (iVar3 == 0) goto LAB_0007e2cc;
      puVar13 = puVar9 + iVar16;
      goto LAB_0007e2bc;
    }
    puVar13 = puVar9 + iVar16;
    puVar5 = (undefined4 *)puVar13[1];
    iVar3 = iVar16 + 1;
    puVar4 = puVar5;
    if (puVar5[10] == 0) {
      puVar8 = (undefined4 *)puVar13[2];
      puVar4 = (undefined4 *)puVar8[1];
      puVar15 = puVar8;
      if (puVar8[10] == 0) {
        uVar11 = puVar13[9];
        uVar6 = puVar8[5];
        puVar5[3] = puVar4;
        puVar5[10] = uVar11;
        puVar5[7] = uVar6;
        if (puVar4 != (undefined4 *)0x0) {
          *puVar4 = puVar5;
        }
        puVar4 = (undefined4 *)puVar8[2];
        uVar6 = puVar8[6];
        puVar5[0xb] = puVar8[9];
        puVar5[4] = puVar4;
        puVar5[8] = uVar6;
        if (puVar4 != (undefined4 *)0x0) {
          *puVar4 = puVar5;
        }
        (*(code *)PTR_safefree_000b23d0)();
        uVar6 = FUN_0007d8c0(puVar5);
        puVar13[5] = uVar6;
        if (iVar16 == 2) {
LAB_0007e554:
          iVar3 = 3;
          iVar10 = 2;
LAB_0007e55c:
          puVar9[iVar10 + 9] = 0;
          puVar9[iVar3 + 1] = 0;
          puVar9[iVar3 + 5] = 0;
          iVar3 = puVar9[9];
        }
        else {
          iVar7 = puVar13[10];
          iVar10 = iVar16;
          if (iVar7 == 0) goto LAB_0007e55c;
          do {
            puVar13[9] = iVar7;
            puVar13[2] = puVar13[3];
            puVar13[6] = puVar13[7];
            if (iVar3 == 2) goto LAB_0007e554;
            iVar7 = puVar13[0xb];
            iVar3 = 2;
            puVar13 = puVar13 + 1;
          } while (iVar7 != 0);
          puVar9[10] = 0;
          puVar9[3] = 0;
          puVar9[7] = 0;
          iVar3 = puVar9[9];
        }
        puVar2 = PTR_safefree_000b23d0;
        if (iVar3 == 0) {
          *param_1 = puVar5;
          *puVar5 = 0;
          (*(code *)puVar2)(puVar9);
        }
        param_2 = puVar5[5] + puVar5[6] + 1;
      }
      else {
        while (puVar5 = puVar4, puVar5 != (undefined4 *)0x0) {
          puVar15 = puVar5;
          puVar4 = (undefined4 *)puVar5[1];
        }
        puVar13[9] = puVar15[9];
        puVar5 = puVar8;
        param_2 = 0;
      }
    }
    else {
      while (puVar9 = (undefined4 *)puVar4[1], puVar9 != (undefined4 *)0x0) {
        while ((puVar15 = (undefined4 *)puVar4[4], (undefined4 *)puVar4[4] != (undefined4 *)0x0 ||
               (puVar15 = (undefined4 *)puVar4[3], (undefined4 *)puVar4[3] != (undefined4 *)0x0))) {
          puVar4 = puVar15;
          puVar9 = (undefined4 *)puVar4[1];
          if (puVar9 == (undefined4 *)0x0) goto LAB_0007e21c;
        }
        puVar15 = puVar4 + 2;
        puVar4 = (undefined4 *)*puVar15;
        if ((undefined4 *)*puVar15 == (undefined4 *)0x0) {
          puVar4 = puVar9;
        }
      }
LAB_0007e21c:
      iVar3 = puVar4[0xb];
      if ((iVar3 == 0) && (iVar3 = puVar4[10], iVar3 == 0)) {
        iVar3 = puVar4[9];
      }
      puVar13[9] = iVar3;
      param_2 = puVar13[5] + -1;
    }
  } while( true );
LAB_0007e3bc:
  puVar5 = (undefined4 *)puVar9[2];
  iVar10 = 0;
  if (puVar5[10] == 0) {
    iVar7 = 1;
LAB_0007e3d8:
    iVar14 = iVar10 * 4;
    puVar13 = (undefined4 *)puVar9[iVar10 + 1];
    iVar3 = iVar7 * 4;
    if (puVar13[10] == 0) {
      puVar4 = puVar9 + iVar7;
      puVar15 = (undefined4 *)puVar4[2];
      iVar12 = iVar7 + 1;
      if (puVar15 == (undefined4 *)0x0) {
        puVar15 = (undefined4 *)puVar4[1];
        iVar3 = param_2 + puVar9[iVar10 + 5] + 1;
      }
      else {
        if (puVar15[10] != 0) {
LAB_0007e5d0:
          iVar3 = (int)puVar9 + iVar3;
          uVar11 = puVar15[5];
          puVar13 = (undefined4 *)puVar15[1];
          uVar6 = *(undefined4 *)(iVar3 + 0x24);
          puVar5[3] = puVar13;
          puVar5[7] = uVar11;
          puVar5[10] = uVar6;
          if (puVar13 != (undefined4 *)0x0) {
            *puVar13 = puVar5;
          }
          *(undefined4 *)(iVar3 + 0x24) = puVar15[9];
          puVar15[1] = puVar15[2];
          puVar15[5] = puVar15[6];
          if (puVar15[10] == 0) {
            iVar7 = 1;
            iVar10 = 0;
          }
          else {
            puVar15[2] = puVar15[3];
            puVar15[6] = puVar15[7];
            puVar15[9] = puVar15[10];
            if (puVar15[0xb] == 0) {
              iVar7 = 2;
              iVar10 = 1;
            }
            else {
              iVar7 = 3;
              iVar10 = 2;
              puVar15[10] = puVar15[0xb];
              puVar15[3] = puVar15[4];
              puVar15[7] = puVar15[8];
            }
          }
          puVar15[iVar7 + 1] = 0;
          puVar15[iVar7 + 5] = 0;
          puVar15[iVar10 + 9] = 0;
          uVar6 = FUN_0007d8c0(puVar5);
          *(undefined4 *)(iVar3 + 0x14) = uVar6;
          uVar6 = FUN_0007d8c0(puVar15);
          puVar9[iVar12 + 5] = uVar6;
          goto joined_r0x0007e0e8;
        }
        iVar10 = iVar7 + -1;
        puVar13 = (undefined4 *)*puVar4;
        puVar15 = (undefined4 *)puVar4[1];
        iVar14 = iVar10 * 4;
        iVar3 = param_2 + puVar4[4] + 1;
      }
LAB_0007e740:
      puVar15[4] = puVar15[2];
      puVar15[8] = puVar15[6];
      puVar15[3] = puVar15[1];
      puVar15[0xb] = puVar15[9];
      puVar15[7] = puVar15[5];
      uVar6 = puVar13[6];
      puVar5 = (undefined4 *)puVar13[2];
      puVar15[10] = puVar9[iVar10 + 9];
      puVar15[6] = uVar6;
      puVar15[2] = puVar5;
      if (puVar5 != (undefined4 *)0x0) {
        *puVar5 = puVar15;
      }
      puVar5 = (undefined4 *)puVar13[1];
      uVar6 = puVar13[5];
      puVar15[9] = puVar13[9];
      puVar15[1] = puVar5;
      puVar15[5] = uVar6;
      if (puVar5 != (undefined4 *)0x0) {
        *puVar5 = puVar15;
      }
      uVar6 = FUN_0007d8c0(puVar15);
      puVar2 = PTR_safefree_000b23d0;
      puVar9[iVar7 + 5] = uVar6;
      (*(code *)puVar2)(puVar13);
      iVar7 = ((int *)((int)puVar9 + iVar14))[2];
      piVar1 = (int *)((int)puVar9 + iVar14);
      while (iVar7 != 0) {
        iVar10 = iVar10 + 1;
        piVar1[1] = iVar7;
        piVar1[5] = piVar1[6];
        if (iVar10 == 3) {
          puVar9[0xb] = 0;
          puVar9[4] = 0;
          puVar9[8] = 0;
          goto LAB_0007e838;
        }
        piVar1[9] = piVar1[10];
        iVar7 = piVar1[3];
        piVar1 = piVar1 + 1;
      }
      puVar9[iVar10 + 1] = 0;
      puVar9[iVar10 + 5] = 0;
      puVar9[iVar10 + 9] = 0;
LAB_0007e838:
      puVar2 = PTR_safefree_000b23d0;
      puVar5 = puVar15;
      param_2 = iVar3;
      if (puVar9[9] == 0) {
        *param_1 = puVar15;
        *puVar15 = 0;
        (*(code *)puVar2)(puVar9);
      }
    }
    else {
LAB_0007e3f0:
      iVar10 = puVar13[0xb];
      iVar3 = 3;
      iVar12 = 1;
      if (iVar10 == 0) {
        iVar3 = 2;
      }
      puVar5[3] = puVar5[2];
      puVar5[7] = puVar5[6];
      puVar5[10] = puVar5[9];
      puVar5[2] = puVar5[1];
      puVar5[6] = puVar5[5];
      if (iVar10 != 0) {
        iVar12 = 2;
      }
      puVar5[9] = *(undefined4 *)((int)puVar9 + iVar14 + 0x24);
      puVar4 = (undefined4 *)puVar13[iVar3 + 1];
      puVar5[1] = puVar4;
      puVar5[5] = puVar13[iVar3 + 5];
      if (puVar4 != (undefined4 *)0x0) {
        *puVar4 = puVar5;
      }
      *(undefined4 *)((int)puVar9 + iVar14 + 0x24) = puVar13[iVar12 + 9];
      puVar13[iVar3 + 1] = 0;
      puVar13[iVar3 + 5] = 0;
      puVar13[iVar12 + 9] = 0;
      uVar6 = FUN_0007d8c0(puVar5);
      puVar9[iVar7 + 5] = uVar6;
      iVar10 = *(int *)((int)puVar9 + iVar14 + 0x14);
      iVar3 = FUN_0007d8c0(puVar13);
      *(int *)((int)puVar9 + iVar14 + 0x14) = iVar3;
      param_2 = (param_2 + iVar10) - iVar3;
    }
  }
  goto joined_r0x0007e0e8;
  while( true ) {
    iVar3 = puVar13[0xb];
    iVar10 = 2;
    puVar13 = puVar13 + 1;
    if (iVar3 == 0) break;
LAB_0007e2bc:
    puVar13[9] = iVar3;
    if (iVar10 == 2) goto LAB_0007e2c8;
  }
  iVar16 = 1;
LAB_0007e2cc:
  puVar9[iVar16 + 9] = 0;
  do {
    puVar13 = puVar9;
    if (puVar5 == (undefined4 *)0x0) {
      return iVar17;
    }
    while (puVar9 = puVar5, (undefined4 *)puVar9[1] != puVar13) {
      iVar16 = 3;
      if ((undefined4 *)puVar9[2] == puVar13) {
        iVar16 = 1;
      }
      else if ((undefined4 *)puVar9[3] == puVar13) {
        iVar16 = 2;
      }
      puVar9[iVar16 + 5] = puVar9[iVar16 + 5] + -1;
      puVar5 = (undefined4 *)*puVar9;
      puVar13 = puVar9;
      if ((undefined4 *)*puVar9 == (undefined4 *)0x0) {
        return iVar17;
      }
    }
    puVar9[5] = puVar9[5] + -1;
    puVar5 = (undefined4 *)*puVar9;
  } while( true );
LAB_0007e2c8:
  iVar16 = 2;
  goto LAB_0007e2cc;
}

